游戏导入标准资源包“Character Controllers”后可以为游戏对象添加 character(角色控制器)组件:

添加角色控制器组建以后可以控制游戏对象移动;

角色控制器组件因为与碰撞组件相互冲突,所以添加角色控制器组建后Collider组件就会消失。

 

默认在Unity中创建的模型是不具备接收物理引擎的,除非给模型添加刚体组件角色控制器组件

看下面代码:

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class rigidbodyScript : MonoBehaviour
 5 {
 6 
 7     // Use this for initialization
 8     void Start ()
 9     {
10     
11     }
12     
13     // Update is called once per frame
14     void Update ()
15     {
16     
17     }
18 
19     void OnControllerColliderHit (ControllerColliderHit hiter)
20     {
21         GameObject hit = hiter.collider.gameObject;
22         if (hit.rigidbody != null && !hit.rigidbody.isKinematic) {
23             if (hit.name != "Plan") {
24                 hit.rigidbody.AddForce (new Vector3 (hiter.moveDirection.x, 0f, hiter.moveDirection.z), ForceMode.Impulse);
25             }
26         }
27     }
28 }

看检视面板和层次面板:

 

场景中的四个 cube 均已被添加刚体组件,参数默认。上图中   数字1 处 三个组建是 添加角色控制器组件后自动添加的 组件 。

 

运行以后 按下 WASD控制sphere 前后左右移动,碰到cube 的时候为 cube 添加一个 力 ,可以把 他们推开。