zoukankan      html  css  js  c++  java
  • 打砖块代码解析

    子弹代码:

     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

  • 相关阅读:
    JSE-1.1.4 内存屏障和CPU缓存
    Ajax
    R手册(Common)--R6 and S4
    掌握 小程序项目新建后的 初始代码 及 git远程管理(2)
    微信小程序 网课学习笔记 开发前的准备工作(1)
    vuex中action如何互相调用
    ajax请求时,请求路径自动拼上页面路径?
    10个免费的CDN
    java面向对象
    java中方法的递归调用
  • 原文地址:https://www.cnblogs.com/krystalstar/p/10111124.html
Copyright © 2011-2022 走看看