让人物或物体移动的时候,碰到一堵墙(或另一个物体)时,不能穿过去。就用这种方法,简单明了。
如果这个问题去借助unity中的physics, 等碰撞模拟等工具时,是一个错误的方向,将简单问题复杂化了,而且那种模拟实现起来很受限制。
void Update () {
var fwd = transform.TransformDirection (Vector3.up);if(Input.GetKey(KeyCode.UpArrow)){
if (!(Physics.Raycast (transform.position, fwd, (float)0.2))) {
gameObject.transform.Translate(0,1*Time.deltaTime,0,Space.Self);
}
}
}