作业帮 > 综合 > 作业

unity3d,的一个简单代码.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/06/05 23:06:38
unity3d,的一个简单代码.
请问如何让一个物体,上下 或者左右在一定的范围内做往复运动呢?
看怎么运动了,是规律性的还是随机的,如果使用路径的话可以划定好路径
再问: 例如 水平 往复运动,匀速。如何来实现? 给个代码。
再答: 动画比较容易些,不过如果再unity中录动画,要用到父物体,否则只能在一个位置往复。代码如果检测范围的话也可以,不过麻烦了些 个人试验了下别的方法,代码如下 var length : float = 3.0; //往复移动的范围 var speed : float = 1.0; //移动的速度 private var oldPostion : Vector3; function Start(){ oldPostion = transform.position; //为的是在任意位置来回移动 } function Update () { var positon : float = Mathf.PingPong(Time.time*speed, length); transform.position =oldPostion+ Vector3(positon, 0, 0); } 这个可能不大好理解, oldPostion是为了让物体能在任意位置往复。 而如果用一个父物体来确定初始位置,然后让加了脚本的物体作为子物体,可以不用Start函数,但position要换为localPositon transform.localPosition = Vector3(positon, transform.position.y, transform.position.z); 如果要变速往复则更简单 var speed : float = 1.0; var a : float = 3.0; //往复范围 function Update () { var x = Mathf.Sin(Time.time*speed)*Time.deltaTime*a; transform.Translate(x,0,0); } 这个不用设定位置,放在哪就在哪往复