Unity - Rigidbody刚体

MovePosition

  1. rigid.MovePosition(targetPosition)

调用执行后

1)rigidbody.position 会立即改变,而transform.position并不会立即生效改变

2)transform.position 需要等到下一次的FixedUpdate执行完毕后才会生效改变,即可在LateUpdate中打印看见

复制代码
rigid.position = Vector3.zore;
transform.position = Vector3.zore;
int index = 0;
void Update()
{
    Debug.Log($"1  : T={transform.position}	b={Rigid.position}"); //Vector3.zore|Vector3.zore
    Rigid.MovePosition(Rigid.position + Vector3.right);
	Debug.Log($"2  : T={transform.position}	b={Rigid.position}");//Vector3.zore|new Vector3(1,0,0)
    index = 1
}
void FixedUpdate()
{
    Debug.Log($"1  : T={transform.position}	b={Rigid.position}"); //Vector3.zore|new Vector3(1,0,0)
    index = 2
}

void LateUpdate()
{    
    if(index != 2)
    {
        Debug.Log($"1  : T={transform.position}	b={Rigid.position}"); //Vector3.zore|new Vector3(1,0,0)
    }
    else
    {
        Debug.Log($"1  : T={transform.position}	b={Rigid.position}"); //new Vector3(1,0,0)|new Vector3(1,0,0)
    }

}

Physics.autoSyncTransforms

Physics.autoSyncTransforms = true;

开启后,当使用Rigid.position = xxx时,transform会立即和rigidbody位置同步

否则transform会和rigidbody短暂不同步,需要等到下一次FixedUpdate执行完毕后才同步改变

collisionDetectionMode

连续检测,防止穿透

Rigid.collisionDetectionMode = CollisionDetectionMode.Continuous;

interpolation

transform 是否插值移动表现:None(无插值) , 其他选项(插值平滑移动) | 只针对kinematic刚体

Rigid.interpolation = RigidbodyInterpolation.None;

isKinematic

设置为true,不接收任何力的作用

可以使用MovePosition移动,但是为true时 只能在FixedUpdate中生效,反之Update中也生效

Rigid.isKinematic = true;

Physics.SyncTransforms()

若直接设置transform.position,则需要调用该函数后,rigidbody.position才会同步改变

Physics.SyncTransforms();

相关推荐
那个村的李富贵7 小时前
Unity自适应文本提示框:从原理到实战
unity·游戏引擎
HonestGoat8 小时前
Unity3d之鼠标光标
unity
WarPigs8 小时前
Unity人物翻越功能
unity·游戏引擎
游乐码8 小时前
Unity基础(四)向量相关
游戏·unity·游戏引擎
VT LI10 小时前
Cocos2d-x 引擎架构全面深度解析:从底层渲染到上层交互的系统性技术全景
游戏引擎·cocos·引擎架构
Kurisu57510 小时前
探灵直播2026最新官方正版免费下载 一键转存 永久更新 (看到速转存 资源随时走丢)
游戏·游戏引擎·游戏程序·动画·关卡设计
神码编程11 小时前
【Unity】MiniGame编辑器小游戏(十五)中国象棋局域网对战【Chinese Chess】(上)
unity·编辑器·游戏引擎·小游戏
伽蓝_游戏11 小时前
第四章:AssetBundle 核心机制与文件结构
unity·c#·游戏引擎·游戏程序
郝学胜-神的一滴12 小时前
中级OpenGL教程 006:高光反射原理与 Shader 实现
c++·unity·godot·图形渲染·three.js·opengl·unreal
神码编程15 小时前
【Unity】MiniGame编辑器小游戏(十六)中国象棋局域网对战【Chinese Chess】(下)
unity·编辑器·游戏引擎·小游戏