uinty之物体移动的三大主流方法的区别

本文详细介绍了Unity中三种物体移动方法:Transform组件适用于无需物理碰撞的移动;Rigidbody组件用于模拟物理碰撞效果,包括MovePosition和AddForce系列方法;CharacterController组件则专门用于第一人称或第三人称角色的移动,提供SimpelMove和Move两种方式。这些方法最终都会影响到Transform的position属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Transform组件
Rigidbody组件
CharacterController组件

Transform组件

用途:一般用于不需要模拟物体碰撞的移动,可以穿透其它物体
方法

  • Transform.Translate(Vector3,Space):这个方法有六个构造函数,可以以自身坐标系为参考移动Space.self,也可以以世界坐标系为参考进行移动Space.world。
 if (Input.GetKeyDown(KeyCode.W))
        {
            m_Transform.Translate(Vector3.forward,Space.world);
        }
        if (Input.GetKeyDown(KeyCode.S))
        {
            m_Transform.Translate(Vector3.back,Space.self);
        }

Rigidbody组件

用途:一般用于需要模拟物理碰撞效果的移动,如需要模拟物体间相互碰撞,摩檫力等
方法

  • Rigidbody.MovePosition(Vector3):这个干法只有一个构造参数,是以世界坐标系进行移动。参数表示移动后的位置,所以参数还需要加上自己所在的位置。
       if (Input.GetKeyDown(KeyCode.W))
        {
            //m_rig.MovePosition(m_Transform.position+ Vector3.forward);
            m_rig.AddForce(Vector3.forward*50, ForceMode.A
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值