unity触屏移动物体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity触屏移动物体相关的知识,希望对你有一定的参考价值。

项目中需要触屏对物体进行控制,有一个问题就是物体旋转之后移动物体就会错误,例如旋转180度之后往上移动物体反而往下,有没有方式可以解决。。

参考技术A if (Input.touchCount == 1)

if (Input.GetTouch(0).phase == TouchPhase.Moved)

Vector3 touchDeltaPosition = Input.GetTouch(0).deltaPosition;
transform.Translate(touchDeltaPosition.x * speed, touchDeltaPosition.y * speed, 0,Space.Wrold);

本回答被提问者采纳

在unity3d里无法移动物体

我在unity3d里通过transform.Translate(Vector3(0,0,1)和transform.position.z+=1来移动物体,但有些物休能动,另一些从UNITY3D官网上下载的物体却不能移动,通过属性窗口能看到物体的POSITION值是在变化,但视图窗口中物体是不动的,只有物体的collider线框在动,请问上是怎么回事?如何才能让这种物体动起来?
似乎当一个物体(指UNITY3D官网上下载的物体)是由多个物体组成时,就移动不了

这个问题,我估计是不是你的脚本位置挂错了。看看是不是挂在了父类对象上。小写transform的协会是这样的this.transfrom,很多时候我们省略了this。那样的话,tranform指的是什么就很清楚了,它和大写的Tranfrom不一样,用小写的,会得到你挂在脚本的对象的tranform组件然后操作其属性。你说的多个物体不能移动应该就是没有得到渲染模型的tranfrom导致或者是因为不是挂载在父对象上。来自:求助得到的回答 参考技术A C#中貌似用transform.position.z+=1的方法会有问题。
如果是人,声明一个chanractercontroller,获取组件,然后用move或者simplemove方法移动
其他就用transform.Translate(ector3 temp×time.detailtime*speed);追问

不是人,不能用角色控制器。transform.Translate方法试过了,只能看到物体的collider线框在动,物体本身没动。

参考技术B

下方“ w我是QQ糖”网友已给出答案 是  物体 Inspector 属性面板 Static 被勾上了。

实测(去除),是对的。

以上是关于unity触屏移动物体的主要内容,如果未能解决你的问题,请参考以下文章

Unity中的虚拟摇杆,用于触屏游戏的角色移动控制

unity中怎么让物体随着鼠标移动?

在unity3d里无法移动物体

unity怎么计算物体移动速度

新人求教unity 2d 物体跟随鼠标移动的问题

unity3d让物体移动固定距离