角色碰撞器。

欢迎来到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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值