Unity 小球在两点之间往返运动
来源:互联网 发布:日记软件什么最好 编辑:程序博客网 时间:2024/04/28 12:57
在Vectoer3类中有一个Lerp方法,可以让一个物体从一个点到另外一个点。如果要在
这里点加往返运动我们可以借助Mathf.PingPong()这个方法。这个方法会从0-Lenght持续增加,达到最大值后,持续减小,然后到0,如此反复。每次都会返回一个大于0 的值,我们把该值加在某一个固定值上就可以达到往复变大变小的效果。
方法一
using UnityEngine;using System.Collections;public class Vector3Lerp : MonoBehaviour { //起始坐标 public Transform ori; //终止坐标 public Transform des; //记录距离起始点的距离 float z = 0; void Start () { //记录最开始的Z方向上的位置 z = transform.position.z; } // Update is called once per frame void Update () { float distance = Mathf.PingPong(Time.time*0.5f, Vector3.Distance(ori.position, des.position)); //每帧都给游戏物体一个新的坐标 transform.position = new Vector3(transform.position.x,transform.position.y,z+ distance); }}
方法二:
通过计时器来改变方向
float num = 0.01f; bool flag = false; float timer = 1; void Task02() { if (flag) { timer -= Time.deltaTime; if (timer <= 0) { flag = false; } } else { timer += Time.deltaTime; if (timer>=1) { flag = true; } } sphere.transform.position = Vector3.Lerp(new Vector3(5,1,-5), new Vector3(5, 1, 5),timer); }
方法三
void Task03() { sphere.transform.position = new Vector3(5,1,5*Mathf.Sin(Time.time*2)); }
可以利用数学中的正弦函数,这样的代码最为简洁
0 0
- Unity 小球在两点之间往返运动
- Unity往返运动
- Unity两点之间模拟抛物线运动
- 往返小球
- 两点之间往复运动 仿照itween 的pingpong运动
- 小球运动
- 一个点在一条直线上往返做运动的代码。
- 游戏编程基础之(一):实现物体在窗口上的往返运动
- ENTER_FRAME事件简单控制往返运动
- 改变小球运动方向
- 物理模拟小球运动
- 《运动的小球》开启
- 小球运动Android xml
- 小球运动Android MainActivity
- 小球运动Android MyCircleView
- 小球运动Android AppContext
- 自由运动的小球
- js 小球运动
- 图像铅笔画算法
- Android 常用 adb 命令总结
- 深入解读JavaScript面向对象编程实践
- Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- 快速重建system.img
- Unity 小球在两点之间往返运动
- Prime Ring Problem(素数环问题)
- Kendo UI在线演示 (赞)
- AS adb连接设备时,error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037
- 关于php的header的函数
- DWZ富客户端框架+DWZ简介及其使用+DWZ讨论组
- XML 国际化问题
- 框架和平台的区别以及两者的重要性(出自“至简李云” 博客)
- 父类构造器的隐式调用和显式调用