Unity Scripting Tutorials 要点记录

这几天经过Unity官网的Unity Scripting Tutorials的视频学习Unity脚本,观看的过程当中作了记录。如今,整理了一下笔记,供本身之后和其余初学者参考。编辑器

Awake和Start

  • Awake首先执行。一般用于创建组件间的引用,初始化。
  • Start在Awake以后和第一次Update以前执行,而且要求脚本enabled。只执行一次。

Updte和FixedUpdate

  • Update每帧一次,间隔不固定(受帧的处理时间影响),用于处理:

    • 非物理物体的运动
    • 获取输入
    • 定时器
  • FixedUpdate间隔固定,用于调整物理物体(刚体)。

enabled、setActive和Destroy

  • enabled控制禁用和启用一个组件。禁用GameObject的renderer能够隐藏物体,但碰撞体仍然存在。
  • setActive用于显示和隐藏一个物体。
  • Destroy用于完全销毁一个GameObject或组件。能够加一个数值表示delay。

Translate和Rotate

使用这两个方法控制物体运动。
Translate对应position:ide

transform.Translate(Vector3);   // Amount in each axis to move by

Rotate对应rotation:学习

transform.Rotate(Vector3,   // Axis around which to rotate
                 float)     // amount to rotate by

LookAt

transform.LookAt(target);

用于移动物体Z轴使之对准目标物体。
将其绑定到相机上能够实现运动物体的跟踪。3d

Lerp

用于平滑某种转变。code

  • 空间移动:orm

    Vector3.Lerp(Vector3 from,  // 起点。一般应设为当前坐标
                 Vector3 to,    // 终点
                 float t);      // 0~1之间的值。值越大,返回值越接近终点,移动也越快。
  • 数值变换:视频

    Mathf.Lerp(float from, float to, float t);
  • 颜色渐变:对象

    Color.Lerp(Color from, Color to, float t);

GetButton、GetKey和GetAxis

GetButton和GetKey的区别:ip

  1. 前者参数为字符串,能够经过设置面板更改字符串和对应按键的映射。
  2. 后者的参数为KeyCode对象。

GetButton/Up/Down的区别:字符串

  1. Up按键弹起时为true,其余时为false;
  2. 长按时GetButton每帧都返回true,而Down只有第一帧。

GetAxis(axisName)经过获取某个轴的值来了解用户的输入。

  • axisName是字符串,能够是“Horizontal”、“Vertical”。
  • 返回值为0~1之间的值。
  • 在设置中能够调节轴的参数,gravity控制返回0的速度,sensitivity控制离开0的速度。

OnMouseDown

鼠标在Collider或GUI组件上按下时调用该方法。
同类方法:

  • OnMouseDrag:按住不放
  • OnMouseEnter:进入
  • OnMouseExit:退出
  • OnMouseOver:在上面
  • OnMouseUp:释放
  • OnMouseUpAsButton:按下和释放做用于同一个对象

Instantiate

建立prefab的副本,返回对象的引用。
使用时先用代码建立GameObject的变量,而后回到编辑器界面将prefab拖入变量中。

Invoke

调用名叫method的方法:

Invoke(method, delay);

每隔time重复调用method方法:

InvokeRepeating(method, delay, time);

取消Invoke:

CancelInvoke();

取消名叫method的Invoke:

CancelInvoke(method);

Coroutine

利用了C#的yield,来实如今屡次Update中执行一个行为。
开始一个Coroutine:

StartCoroutine(IEnumerator routine);

或者接受一个string参数表示方法的返回IEnumerator的方法的名字,后面跟着参数。
例:

StartCoroutine(Func(param));
StartCoroutine("Func", param);

中止一个Coroutine,用StopCoroutine。一样有两种形式。

Quaternion

用来表示旋转的类。讲了三个内容:

1)

LookRotation(Vector3 forward);

返回使物体转向forward方向的Quaternion。

2)

Slerp(Quaternion from, Quaternion to, float t);

旋转角度。相比Lerp,在中间时快,两头时慢。

3)

Quaternion.identity是一个静态变量,表示没有旋转。

相关文章
相关标签/搜索