子弹代码:
1 public GameObject Bullet;public float Speed = 5; 2 3 void Update () { 4 5 if (Input.GetMouseButtonDown(0)) 6 { 7 8 GameObject bullet = GameObject.Instantiate(Bullet, transform.position, transform.rotation); 9 Rigidbody bulletrig = bullet.GetComponent();10 bulletrig.velocity = transform.forward * Speed;11 } 12 }
相机移动代码:
1 void Update () {2 float ad = Input.GetAxis("Horizontal");3 float ws = Input.GetAxis("Vertical");4 transform.Translate(new Vector3(ad, ws, 0) * Time.deltaTime);5 6 }
心得:
Start()函数用于代码初始化
Update()函数用于游戏控制
游戏对象的实例化:
游戏对象的实例化是指在游戏场景中显示物体
创建好的游戏对象可以设置为预制体,保存在工程目录下,而不是放在场景中,通过脚本定义游戏对象后(GameObject),通过将预制体拖入的方式初始化(仅限Public变量),通过控制方法GameObject.Instantiate()实例化对象(此处为子弹)
Input类:
Input.GetMouseButtonDown(0)按下鼠标左键
Input.GetAxis("Horizontal")获取左右按键的坐标
transform.Translate()使物体移动
在Update中运用的函数每帧执行一次,FPS即为每秒的帧数
Time.deltaTime 的含义用法:
变量deltaTime表示为unity本地变量,作为Time类中的数据在各帧中被更新,在各帧中,该变量显示了距上一帧所经历的时间值(以秒计算)。
这个变量的优点: 使用这个函数他会与你的游戏帧速率无关
放在Update()函数中的代码是以帧来执行的,我们需要将移动的物体乘以秒来执行,而乘以deltaTime其就可以实现
例如:想让一个游戏对象向前以每秒10m移动的话
用你的速度10乘Time.deltaTime
他表示每秒移动的距离为10m而不是每帧10m
注: 可在Update 与 fixedUpdate 中使用 但并不适用于OnGUI