Unity_物体方向错乱问题与Space的关系与解决方法
来源:互联网 发布:知豆新能源图片 编辑:程序博客网 时间:2024/06/01 19:56
以物体向前走的案例来说明
物体旋转时错位的情况也可以参考本文
物体的正前方与世界的正前方重合时,不会发生错位
void Update () { //获取坐标 float ver= Input.GetAxis("Vertical"); //根据w,s键获取的坐标选择让物体向前,向后运动 //以下说明只改变这一行 obj2.transform.Translate(new Vector3(0, 0, ver) * Time.deltaTime * 10,Space.Self); }
当物体的前方和世界坐标的前方产生夹角的时候,就会根据Space.World和Space.Self的不同发生方向错乱问题
obj2.transform.Translate(obj2.transform.forward * ver * Time.deltaTime * 10, Space.Self);
obj2.transform.Translate(new Vector3(0, 0, ver) * Time.deltaTime * 10,Space.World);
首先说一下避免物体运动方向错乱的方法:
我们都知道让物体运动要先设置运动方式,是沿着哪个轴去运动(是沿着自己的轴还是世界的轴),最后一个Space参数是决定你怎么去运动的(参考系,是按照世界坐标系还是个人坐标系)。
只要我们保持着两个参数是相反的,物体就不会转向,比如我们第一个参数是沿着个人坐标系的x轴去运动,那么最后一个参数我们就写Spacce.World。反之第一个写Vector3(1,0,0),按着世界坐标系的x轴运动,那么我们就写Space.Self。
下面说一下我个人的理解。
这个指令类似我们人的行动方式。假如我们对一个人下达运动的指令,首先我们告诉他往哪走,然后我们在告诉他以某一物体作为参照物,然后让他去运动。
上边物体转向的情况就是,我们让一个人按着自己的前方去运动,并且以自己为参照物。这时就相当于蒙着他的眼,让他走直线,那么这个人肯定不会走正前方。在他个人认为他向前走,而我们看来确是转向了。
其他转向类似。
我们可以这样理解物体运动的代码,让一个物体去运动的时候,一定要有和运放的方式相异的参照物。
阅读全文
3 0
- Unity_物体方向错乱问题与Space的关系与解决方法
- 空间与物体的关系
- Unity_与线程的关联
- Tomcat服务器出现PermGen Space与Heap Space的解决方法!
- Tomcat服务器出现PermGen Space与Heap Space的解决方法!
- Unity_简单的摄像机绕物体旋转
- 设备方向,视图控制器方向和视图方向,监测与设置,以及相互之间的关系
- ModJK与Jboss消息错乱问题
- RecyclerView与CheckBox结合使用错乱问题
- Unity游戏开发的数学与物理 1 ( 物体延水平方向运动 )
- Unity游戏开发的数学与物理 3 ( 让物体延任意方向移动 )
- Unity游戏开发的数学与物理 1 ( 物体延水平方向运动 )
- Unity_脚本与寻路系统的结合使用_013
- Android 第三方 Jar 的 Link 与问题:Unable to execute dex: Java heap space的解决方法
- 理论与问题的关系
- Ubuntu ibus拼音输入法输入错乱问题的解决方法
- 物体与曲面的碰撞
- 物体的旋转与移动
- Tomcat 顶层结构
- Java条件对象(Condition)
- scrapy日志的设置方法
- MySQL存储引擎
- 引言之“级数求和”
- Unity_物体方向错乱问题与Space的关系与解决方法
- 【算法题】最大乘积
- 本篇文章主要记录如何在CentOS7.0上安装Chrome浏览器。
- linux 编译php扩展 openssl
- windows校准时间,与互联网同步
- 线性筛法(欧拉筛)
- fabric0.6交易处理流程及调用关系分析
- Java接口
- TAOCP中最大公约数算法理解