Unity Input,生命周期,Light,获取组件

  1. 常用的生命周期函数:

    Awake():唤醒事件,游戏一开始运行就执行,只执行一次。

    OnEnable():启用事件,只执行一次。当脚本组件被启用的时候执行一次。

    Start():开始事件,执行一次。

    FixedUpdate():固定更新事件,执行N次,0.02秒执行一次。所有物理组件相关的更新都在这个事件中处理。

    Update():更新事件,执行N次,每帧执行一次。

    LateUpdate():稍后更新事件,执行N次,在 Update() 事件执行完毕后再执行。

    OnGUI():GUI渲染事件,执行N次,执行的次数是 Update() 事件的两倍。

    OnDisable():禁用事件,执行一次。在 OnDestroy() 事件前执行。或者当该脚本组件被“禁用”后,也会触发该事件。

    OnDestroy():销毁事件,执行一次。当脚本所挂载的游戏物体被销毁时执行。

  2. 1.     递归方法遍历获取指定子物体

知识点:递归的使用;transform.childCount、GetChild(index)

 

 

 

 

2.  Input输入控制类,检测玩家输入

知识点:

Input.GetKeyDown();Input.GetKey();Input.GetKeyUp();

Input.GetMouseButton();

Input.GetAxis(“”);

 

 

按键设置:

 

 

按键按下、按的过程、按键抬起三个执行顺序:

 

 

 

鼠标按键的id

 

 

Asdw按键轴值获取:

 

 

 

Awake():唤醒事件,游戏一开始运行就执行,只执行一次。

OnEnable():启用事件,只执行一次。当脚本组件被启用的时候执行一次。

Start():开始事件,执行一次。

FixedUpdate():固定更新事件,执行N次,0.02秒执行一次。所有物理组件相关的更新都在这个事件中处理。

Update():更新事件,执行N次,每帧执行一次。

LateUpdate():稍后更新事件,执行N次,在 Update() 事件执行完毕后再执行。

OnGUI():GUI渲染事件,执行N次,执行的次数是 Update() 事件的两倍。

OnDisable():禁用事件,执行一次。在 OnDestroy() 事件前执行。或者当该脚本组件被“禁用”后,也会触发该事件。

OnDestroy():销毁事件,执行一次。当脚本所挂载的游戏物体被销毁时执行。

 

 小案例:按键控制旋转和移动,坦克发射子弹;

坦克控制类:

 

 

 

 

子弹控制类,一直沿着z轴向前运动

 

 

 

问题:一直发射子弹,会导致内存中不断积累子弹,有什么方法可以优化?提示:缓冲池解决。

 

3.   生命周期函数

知识点:熟悉各个内置函数的调用顺序和调用次数

 

 

 

 

4.   Light灯光组件

知识点:详解第一个Unity组件,熟悉Unity组件的属性和使用方法,如灯光类型、灯光颜色调试、灯光影子类型;

Type:Light类型:Directional直射光;Point点光源;Spot聚光灯;Area区域光;

Color:灯光颜色;

Mode:灯光烘焙模式:Realtime:实时光;Mixed:混合光;Baked:烘焙光;

Instensity:光照强度;

Indirect Multiplier:光照乘数,间接光从另一个游戏物体反射到另一个游戏物体的光线;小于1时每次反射会变暗,

ShadowType:阴影类型:Soft Shadows:平滑阴影;HardShadow:硬阴影;NoShadows没有阴影;

BakeShadowAngle:人为增加阴影平滑度,让阴影更光滑;

Strength:阴影强度;

Resolution:阴影质量;质量越高,消耗越大;

Bias:阴影推移距离;

Normal Bias:光阴表面推移距离;

NearPlane:(在点光源和聚光灯下起作用)影子的近裁剪面;

Cookie:投射阴影的指定纹理; cookiesize:纹理大小;

Draw Halo:辉光是否开启;

Flare:光耀(只有电光源和聚光灯下起作用)赋值光耀文件;

Culling Mask:裁剪层;(一个十进制数字通过多个二进制数值)

 

 

 

5.  组件的获取

知识点:通过游戏物体获取组件GetComponent<>,获取到组件之后修改组件属性;

流程的理解:1.找到游戏物体;2.在游戏物体上获取组件;3.得到组件控制权之后修改组件属性;

案例:通过获取代码组件来设置子弹的速度;

 

 

 

作业:使用GetComponent方法获取坦克发射子弹的子弹控制代码,设置一个随机数作为子弹的运行速度;

posted @ 2019-04-18 17:36  D个人笔记  阅读(647)  评论(0编辑  收藏  举报