unity 如何让物体匀加速和匀减速运动,求代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity 如何让物体匀加速和匀减速运动,求代码相关的知识,希望对你有一定的参考价值。

匀变速运动的公式:Vt = V0 + at
所以在Update里面 speed+= acceleration*Time.delta就好了
speed是速度
acceleration是加速度(符号为负的时候就是减速运动)
参考技术A 你可以试试加力 参考技术B 提供恒定外力追问

不是刚体

unity 如何让物体绕自己的中心轴转

这里有一个炮塔,如何让他旋转?
if(Input.GetKey(KeyCode.Q))
transform.Rotate(0,0,-25*Time.deltaTime );

if(Input.GetKey(KeyCode.E))
transform.Rotate(0,0,25*Time.deltaTime );

这是代码,但是有问题,如何修改?求大神

1、打开unity3d在场景中创建一个球体。

2、然后在项目文件夹中创建一个“Rotate_test”脚本。 

3、在脚本中的update中使用RotateAround让物体围绕世界坐标的“(10f,0f,0f)”这个点,以“(0f,0f,1f)”为轴向,也就是Z抽进行旋转,旋转角度是“3f”。

transform.RotateAround(new Vector3 (10f,0f, 0f), new Vector3 (0f, 0f, 1f), 3f); 

4、把“Rotate_test”脚本放在球体上。

5、运行后我们法线球体围绕自定义的点以及Z轴向旋转。

参考技术A

1.打开Unity3d工程,创建物体和脚本。

2.在void Update()里输入gameObject.transform.Rotate (new Vector3 (0, 1, 0));,表示物体围绕中心轴旋转。

3.将脚本赋予物体。

4.点击播放按钮测试效果。

参考技术B transform.Rotate (Vector3.forward * 25* Time.deltaTime, Space.Self);

旋转方向可以是:Vector3.upward.....
旋转中心可以是:Space.Self, Space.World追问

试了一下好像不行啊,大神能不能写全面一点

追答

汗……已经汗清楚了……你有把script拉到物体上面吗?
如果实在不行的话,试试下面这个
Quaternion fromRotation = transform.localRotation;
Quaternion toRotation = Quaternion.Euler (0, yDeg, 0); //y轴旋转 yDeg角度
transform.localRotation = Quaternion.Lerp (fromRotation, toRotation, Time.deltaTime * 10);
如果你没有把script拉到物体上面的话,就得加
GameObject obj = GameObject.Find("炮塔(物体名字)“);
然后在上面所有的transform变为obj.transform

本回答被提问者和网友采纳

以上是关于unity 如何让物体匀加速和匀减速运动,求代码的主要内容,如果未能解决你的问题,请参考以下文章

匀加速系统模式开发匀加速系统模式详解

0025-中点位移的速度

机动目标跟踪——匀加速运动CA模型(二维)

机动目标跟踪——匀加速运动CA模型(二维)

机动目标跟踪——匀加速运动模型(三维)

机动目标跟踪——匀加速运动模型(三维)