unity仿真应用技巧:物体移动、旋转(方式2)

 时间:2026-02-13 11:31:24

1、场景搭建,导入一个滑梯模型(或是用三个Plane自己搭建一个滑梯),新建一个Cylinder圆柱体,用作控制的对象

unity仿真应用技巧:物体移动、旋转(方式2)

unity仿真应用技巧:物体移动、旋转(方式2)

2、实现圆柱体position的移动:

声明:

public  Transform Cyl;//圆柱体;在控制物体移动、旋转时,将物体声明成Transform变量将会有很多便利

Vector3 Vect0 = new Vector3(2.97f, 0.84f, -0.129f);//圆柱体的初始位置

 Vector3 Vect1 = new Vector3(2.72f, 0.84f, -0.129f);//圆柱体要到达的位置

在Update函数中添加脚本:

 if (Cyl.position.x > 2.72f)//平移

        {

            Cyl.position = Vector3.MoveTowards(Cyl.position, Vect1, Time.deltaTime * 0.2f);

        }

unity仿真应用技巧:物体移动、旋转(方式2)

unity仿真应用技巧:物体移动、旋转(方式2)

3、此处脚本的重点为: Vector3.MoveTowards(Cyl.position, Vect1, Time.deltaTime * 0.2f);

Vector3.MoveTowards(,,)函数的第一个参量为物体当前位置坐标,第二个参量为物体要到达的位置坐标,第三个参量控制物体的移动速度和移动方向.在本例中,作者是控制物体是水平移动,读者可自行实验物体的垂直和前后运动

4、实现圆柱的旋转:为了圆柱体在沿着滑梯向下滑动的效果尽量真实,圆柱体需进行一定角度的旋转倾斜,保证下滑时的倾斜角度与滑梯一致.

声明: Quaternion Quat1;

        Quat1 = Quaternion.identity;

        Quat1.eulerAngles = new Vector3(-63, -95, 90);

脚本:

 if (Cyl.position.x > 2.72f)//平移

        {

            Cyl.position = Vector3.MoveTowards(Cyl.position, Vect1, Time.deltaTime * 0.2f);

        }

        else

        {

            if (Cyl.position.y <= 0.84f && Cyl.position.y > 0.45f)//下滑

            {

                Cyl.rotation = Quaternion.RotateTowards(Cyl.rotation, Quat1, 10f);

                Cyl.position = Vector3.MoveTowards(Cyl.position, Vect2, Time.deltaTime * 0.5f);

            }

unity仿真应用技巧:物体移动、旋转(方式2)

5、此处脚本重点为:Cyl.rotation = Quaternion.RotateTowards(Cyl.rotation, Quat1, 10f);Quaternion.RotateTowards(,,)函数第一个参量为当前物体的rotation值,第二个参量为目标值,第三个参量为物体的旋转速度.请仔细学习四元素Quaternion与rotation,eulerAngles的关系

unity仿真应用技巧:物体移动、旋转(方式2)

unity仿真应用技巧:物体移动、旋转(方式2)

unity仿真应用技巧:物体移动、旋转(方式2)

unity仿真应用技巧:物体移动、旋转(方式2)

unity仿真应用技巧:物体移动、旋转(方式2)

  • VS如何新建项目
  • 如何将C 函数转换成python
  • 春运乘坐高铁动车能吃泡面 充电 开水 注意事项
  • 什么是在多元文化社会中帮助同化的最佳方式
  • 编写C语言程序打印“水仙花数”
  • 热门搜索
    文明礼仪手抄报诗歌 消防安全手抄报大全 小学生二年级手抄报 武汉手抄报 艺术节手抄报内容 中秋节的手抄报简单又漂亮 手抄报边框设计图大全 清明节手抄报题目 庆元旦手抄报内容 中国梦我的梦手抄报内容