unity中常见的移动物体的五种方式

本人以为,能否快速找到合适的方式移动物体,是unity新手与熟手的分水岭。一直想对常见的移动做一次总结,直到最近,看到一个youtube视频,遂整理总结如下:

第一种:Transform SetPosition
解释:直接改变物体的位置,适合非物理碰撞的移动;
代码如下:

clipboard.png

第二种:Transform Translate
解释:跟第一种类似,适合非物理的移动;
代码如下:

clipboard.png

第三种:Rigidbody MovePosition
解释:跟上面两种类似,但是很少用;
代码如下:

clipboard.png

第四种:Rigidbody AddForce
解释:给物体施加力的作用,适合物理类移动;
代码如下:

clipboard.png

第五种:Rigidbody SetVelocity
解释:直接给物体设定速度,适合物理类移动,要注意与上一种方式的区别;
代码如下:

clipboard.png

如果你的物体移动在碰撞时抖动,考虑是否用了物理的方式移动物体;如果物体被设为Kinematic,则只能用前三种方式(直接改变位置)移动物体;

附:原youtube链接如下:

https://www.youtube.com/watch...

以下是我自己做的微信小游戏,扫码玩玩看:

clipboard.png

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity,可以使用代码来实现物体移动。具体的实现方法取决于你想要移动物体类型和移动方式。以下是一些常见物体移动方法: 1. 使用Transform组件的Translate方法:这是一种简单的移动方式,通过改变物体的位置来实现移动。你可以使用Translate方法来指定移动的方向和速度。 示例代码: ```c# using UnityEngine; public class ObjectMovement : MonoBehaviour { public float speed = 5f; void Update() { float horizontalInput = Input.GetAxis("Horizontal"); float verticalInput = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(horizontalInput, 0, verticalInput) * speed * Time.deltaTime; transform.Translate(movement); } } ``` 2. 使用Rigidbody组件的AddForce方法:如果你希望物体具有物理效果,例如重力、惯性等,可以使用Rigidbody组件来实现移动。通过调用AddForce方法来施加力量,物体将根据力量和质量的关系进行移动。 示例代码: ```c# using UnityEngine; public class ObjectMovement : MonoBehaviour { public float speed = 5f; private Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); } void FixedUpdate() { float horizontalInput = Input.GetAxis("Horizontal"); float verticalInput = Input.GetAxis("Vertical"); Vector3 movement = new Vector3(horizontalInput, 0, verticalInput); rb.AddForce(movement * speed); } } ``` 这些示例代码是基本的物体移动实现方法,你可以根据具体需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值