新人求助,unity如何判断一个物体是不是在移动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新人求助,unity如何判断一个物体是不是在移动相关的知识,希望对你有一定的参考价值。
3秒检测一次
if (Time.time - checktime > 3)
//判断是否有移动
if ((transform.position - lastpos).sqrMagnitude > 0.5f)
print ("在移动");
else
print ("停止");
lastpos=transform.position;
技术支持
Unity提供技术支持服务,通过线上问答、项目分析、现场培训等形式为中国开发者解决技术难题,企业级服务支持游戏上线,Unity企业技术支持团队还提供各种定制服务,包括开放大世界解决方案、游戏代码加密方案、UPR性能优化、技术美术支持等服务。
参考技术A 3秒检测一次if (Time.time - checktime > 3)
checktime = Time.time;
//判断是否有移动
if ((transform.position - lastpos).sqrMagnitude > 0.5f)
print ("在移动");
else
print ("停止");
lastpos=transform.position;
参考技术B 用transfrom自带的移动方法! void OnClick() Move(); void Move() transform.Translate(x1-x2,y1-y2,z1-z2); 参考技术C 该物体如果使用了重力系统
获取刚体的属性应该可以判断。
比如 Rigidbody.IsSleeping()
或者获取刚体的速度
Rigidbody.velocity
如果你的移动方式是Translate,MoveTowards...等改变坐标的方式来进行移动的话。
就只有通过获取单位时间的坐标差。来进行判断了吧。
//题外话
我也是萌新,回答不代表我是大牛(免疫一切网络攻击)。
如果有错误请帮忙指出,在此感谢。一起进步
大家也多多参与回答啊。
在unity3d里无法移动物体
我在unity3d里通过transform.Translate(Vector3(0,0,1)和transform.position.z+=1来移动物体,但有些物休能动,另一些从UNITY3D官网上下载的物体却不能移动,通过属性窗口能看到物体的POSITION值是在变化,但视图窗口中物体是不动的,只有物体的collider线框在动,请问上是怎么回事?如何才能让这种物体动起来?
似乎当一个物体(指UNITY3D官网上下载的物体)是由多个物体组成时,就移动不了
如果是人,声明一个chanractercontroller,获取组件,然后用move或者simplemove方法移动
其他就用transform.Translate(ector3 temp×time.detailtime*speed);追问
不是人,不能用角色控制器。transform.Translate方法试过了,只能看到物体的collider线框在动,物体本身没动。
参考技术B下方“ w我是QQ糖”网友已给出答案 是 物体 Inspector 属性面板 Static 被勾上了。
实测(去除),是对的。
以上是关于新人求助,unity如何判断一个物体是不是在移动的主要内容,如果未能解决你的问题,请参考以下文章