打砖块代码解析

子弹代码:

 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<Rigidbody>();
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

posted @ 2018-12-12 21:26  玄之霄  阅读(609)  评论(0编辑  收藏  举报