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

 时间:2024-10-12 03:52:01

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

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

2、实现圆柱体position的移动:声明:public Tran衡痕贤伎sform Cyl;//圆柱体;在控制物体移动、旋转时,将物体声明成Tra荏鱿胫协nsform变量将会有很多便利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语言程序打印“水仙花数”
  • 热门搜索
    诚信从我做起手抄报 中秋节手抄报的内容 物理手抄报版面设计图 英雄人物手抄报 春手抄报 英语节日手抄报 有关安全的手抄报图片 放飞科技梦想手抄报 好词好句手抄报 文明从我做起手抄报