欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
1.
Unity3D封装了一个非常好用的组件来实现第一人称视角与第三人称视角游戏开发,我们称他为角色控制器组件,几乎不用写一行代码就可以完成一切的操作---- Charactr Controller(角色控制器).
2.
在第一人称视角游戏中,整个游戏视图好比主角的眼睛,游戏画面中的一切好像从自己眼睛看到的一样。第一人称视角的控制原理其实是控制Scene视图中摄像机对象的移动,所以屏幕显示的永远都是主角正前方的画面,比如经典的”cs”游戏就属于第一人视角游戏。
3.
第三人称视角的原理是:在游戏场景中包含主角对象和摄像机对象,主角移动后,摄像机永远跟着主角移动所以在Game视图中可以看出主角当前移动方向。大多数游戏都采取第三人称的方式,因为第三人称更为清晰地向玩家展示控制角儿的效果。
4.
通过调用SimpleMove()使物体移动
为移动物体添加CharacterController(角色控制器)
//角色控制器对象
private CharacterController controller=null;
private float moveSpeed=30.0f;//角色移动的速度
void Start () {
//获取角色控制器对象
controller = GetComponent<CharacterController>();
}
//通过键盘控制
void Update{
if (Input.GetKeyDown(KeyCode.W)) {
controller.SimpleMove(Vector3.forward);
}
new Vector3(Input.GetAxis("Horizontal")*moveSpeed,0,
new Vector3 (Input.GetAxis("Vertical")*moveSpeed));
5.
移动与飞行:
角色控制器组件可实现飞行与降落的功能,这可通过Move()方法来实现,其中该方法的参数为飞行的角度。与SimpleMove()方法之通过平面中的移动(也就是x轴与y轴之间的移动)不同,Move()方法适用于所有方向的移动,所以他可以实现游戏对象任意角度的飞行与移动效果。
if (Input.GetKeyDown(KeyCode.W)) {
Vector3 forward=transform.TransformDirection(Vector3.forward);
controller.Move(forward*moveSpeed);
}
if (Input.GetKeyDown(KeyCode.S)) {
Vector3 back=transform.TransformDirection(Vector3.forward);
controller.Move(back*-moveSpeed);
}