FPS第一人称视角射击游戏
游戏涉及知识点介绍:
- unity对象使用
- 物体旋转、移动
- 刚体碰撞
- 射线使用
- 协程函数
- 预设体
游戏下载http://download.csdn.net/detail/d276031034/9759475
游戏源码下载http://download.csdn.net/detail/d276031034/9758902
本人是工作中转到unity开发,在做这款游戏过程中遇到太多太多的坑。希望能够一起交流学习
请留言或者联系邮箱:1020627740@qq.com
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Move : MonoBehaviour {
//玩家对象移动速度
public float speed = 9.0f;
//玩家受到的重力
public float gravity = -9.8f;
private CharacterController _characterController;
// Use this for initialization
void Start () {
//获取对象上CharacterController控件,
/*
* Character Controller本身自带一个碰撞器,无需刚体即可完成触发(Trigger)和碰撞(Collision)功能
* 既通过控件CharacterController进行移动物体,自动检测碰撞
*/
_characterController = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update () {
//获取键盘输入(AD左右按键)
float deltaX = Input.GetAxis("Horizontal") * speed;
//获取键盘输入(WS上下按键)
float deltaZ = Input.GetAxis("Vertical") * speed;
Vector3 movement = new Vector3(deltaX, 0, deltaZ);
//对速度进行限制,向量值最大为speed
movement = Vector3.ClampMagnitude(movement, speed);
//设置受到重力
movement.y = gravity;
//增量时间,使得在不同的硬件设备运行出来的速度是一致
movement *= Time.deltaTime;
//坐标转换,由自身坐标转换为世界坐标
movement = transform.TransformDirection(movement);
//玩家对象移动
_characterController.Move(movement);
}
}