先给你需要移动的物体添加组建CharacterContorller//人物控制器,接着在代码中先获取人物控制器组建
private CharacterController chara;
void Start () {
chara=GetComponent<CharacterController>();
}
然后在Update方法中,定义水平和竖直坐标轴 float Z = Input.GetAxis("Vertical") * 0.1f; float X = Input.GetAxis("Horizontal") * 0.1f;
创建三维坐标Vector3,把X与Z传到Vector3中 Vector3 v3 = new Vector3(X,0,Z); 设置物体斜角移动是的方向 v3 = Vector3.ClampMagnitude(v3,0.1f);
并且将本地坐标转换为世界坐标轴 v3 = transform.TransformDirection(v3);
最后利用定义好的人物控制器对象获取编写好的三维坐标执行移动 chara.Move (v3);
因为人物控制器与刚体间有冲突,所以当你添加了人物控制器,刚体组建则会无效,这时刚体组建中的重力效果就无法运用,我们需要模拟重力来代替刚体组建中的重力效果;
chara.SimpleMove (v3);//模拟重力 ;
人物的跳跃:判断当你按下空格键的时候,你获得一个向上的力,然后执行三维坐标的移动 if(Input.GetKey(KeyCode.Space)){ v3.y = 1.0f;chara.Move (v3);}
将移动物体的 Is Trigger 和其他物体的