考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了
C#篇、unity通用篇、unity3D篇、unity2D篇
。
- 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
- 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
- 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
- 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。
这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。
文章目录
- 插值运算
- 一、线性插值 (Lerp)
- 参数介绍
- 2、示例
- 3、应用
- 二、球形插值 (Slerp)
- 1、参数介绍
- 2、示例
- 3、应用
- 三、线性和球形插值的区别
- 专栏推荐
- 完结
插值运算
插值用于平滑过渡,比如物体从一个位置移动到另一个位置时。
一、线性插值 (Lerp)
参数介绍
Vector3.Lerp静态方法用于在两个点之间进行线性插值。
- 参数:起始点start、结束点end和插值系数t。
- 返回值:在起始点和结束点之间根据插值系数进行插值后的点。
2、示例
先快后慢 每帧改变start位置 位置无限接近,但不会得到end位置
// 可以理解为t不变 每次往方向向量加的值(end - start)一直会变小
A.position = Vector3.Lerp(A.position, target.position, Time.deltaTime);
匀速每帧改变时间,当t>=1时得到结果
// 可以理解为t每一帧累加相同值 start和(end - start)不变 所以是匀速运动
// 这种匀速移动 当time>=1时 我改变了 目标位置后 它会直接瞬移到我们的目标位置 因为t>=1时直接的得到结果
// 所以要做特殊处理 每次改变目标位置时 清空时间
if (nowTarget != target.position)
{
nowTarget = target.position;
time = 0;
startPos = B.position;
}
time += Time.deltaTime;
B.position = Vector3.Lerp(startPos, nowTarget, time);
3、应用
常常用于跟随移动,摄像机跟随等等
二、球形插值 (Slerp)
1、参数介绍
Vector3.Slerp静态方法用于在两个向量之间进行球形插值。
- 参数:起始向量from、目标向量to和插值系数t。
- 返回值:在起始向量和目标向量之间根据插值系数进行球形插值后的向量。
2、示例
time2 += Time.deltaTime;
C.position = Vector3.Slerp(Vector3.right * 10, Vector3.forward * 10, time2 * 0.1f);
// 位置会从(10,0,0)按球形轨迹慢慢的变到(0,10,0)
3、应用
用于曲线运动,模拟太阳运动东升西落效果,导弹轨迹等等
三、线性和球形插值的区别
专栏推荐
地址 |
---|
【零基础入门unity游戏开发——C#篇】 |
【零基础入门unity游戏开发——unity通用篇】 |
【零基础入门unity游戏开发——unity3D篇】 |
【零基础入门unity游戏开发——unity2D篇】 |
【制作100个Unity游戏】 |
【推荐100个unity插件】 |
【实现100个unity特效】 |
【unity框架/工具集开发】 |
完结
好了,我是向宇
,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!