Unity学习笔记

  • Post author:
  • Post category:其他


1.Unity生命周期

  • 初始阶段

    • Awake
    • OnEnable
    • Start
  • 物理阶段

    • FixedUpdate
  • 输入阶段

    • OnMouseEnter
    • OnMouseExit
    • OnMouseOver
    • OnMouseDown
    • OnMouseUp
  • 逻辑阶段

    • Update
    • LateUpdate
  • 场景渲染阶段

    • OnBecameVisible
    • OnBecameInvisible
  • 结束阶段

    • OnDisable
    • OnDestroy
    • OnApplicationQuit

2.Unity核心类

  • Object

    • GameObject(组合了Component和自身)
    • Component

      • Tranform
      • Renderer

        • MeshRenderer
        • ParticleRenderer
      • Behaviour

        • Animation
        • Camera
        • Light
        • Monobehaviour
      • Collider
      • Rigidbody
      • MeshFilter
      • Joint
    • Material
    • Mesh
    • Texture
    • Shader


GameObject


属性

activeInHierarchy(bool)–物体在Hierarchy面板的激活状态

activeSelf(bool)–物体在Inspector面板的激活状态

方法

SetActive(设置activeSelf)

Find–根据名称

FindGameObjectsWithTag–根据标签获取所有

FindWithTag–根据标签获取一个

FindObjectsOfType–根据类型获取所有

Destroy–销毁

Instantiate–克隆


Component


方法

GetComponents–获取自身所有组件

GetComponentsInChildren–获取后代所有组件

GetComponentsInParent–获取先辈所有组件


Transform


属性

position(Vector3)–世界坐标

localPosition(Vector3)–相对父亲

eulerAngles(Vector3)–欧拉角

rotation(Quaternion)–旋转

localScale(Vector3)–缩放(相对于父亲)

方法

Rotate–旋转

Translate–移动

LookAt–看向

SetParent–设置父亲

DetachChildren–解除父子关系(孩子调用)

Find–根据名称获取子物体变换组件

GetChild()–根据索引获取子物体变换组件


Animation


方法

Play–不管动画A是否播放完成,立即播放下一个动画B

PlayQueued–动画A播放完成,再播放动画B

CrossFade–动画A与动画B之间有过渡

3.Time

  • Time

    • 游戏开始到现在的时间
  • deltaTime

    • 距离上一次渲染所用的时间,常用于移动和旋转
  • timeScale

    • 时间流逝的快慢,影响FixedUpdate方法和deltaTime,不影响Update方法和unscaledDeltaTime
  • 与时间相关的技巧

    • 下次执行时间
    • 累积时间间隔
    • 间隔固定时间重复调用

4.Input

  • 鼠标

    • GetMouseButton
    • GetMouseButtonDown
    • GetMouseButtonUp
    • GetAxis
    • GetAxisRaw
  • 键盘

    • GetKey
    • GetKeyDown
    • GetKeyUp

5.三维数学

Degree–角度

Radius–弧度

Vector3–三维向量

magnitude–模长

normalized–单位向量

+ — 加法

* — 数乘

Dot–点乘

Cross–叉乘

MoveTowards–匀速

Lerp–变速(无限接近,但不相等)

Project–投影

ProjectOnPlane–投影到平面

Reflect–反射

Quternion–四元数

* — 重载了乘号(两个四元数相加)

Rotate–效果与乘号相同

LookRotation–瞬间

RotateTowards–匀速

Lerp–变速(无限接近,但不相等)

Space

世界坐标

局部坐标

屏幕坐标

视口坐标

局部坐标转世界坐标

TransformPoint(受旋转、移动、缩放影响)

TransformDirection(受旋转影响)

TransformVector(受旋转、缩放影响)

世界坐标转局部坐标

InverseTansformPoint

InverseTransformDirection

InverseTransformVector

世界坐标转屏幕坐标

Camera.main.WorldToScreenPoint

屏幕坐标转世界坐标

Camera.main.ScreenToWorldPoint

世界坐标转视口坐标

Camera.main.WorldToViewportPoint

视口坐标转世界坐标

Camera.main.ViewportToWorldPoint

6.碰撞检测

  • Collider–有碰撞效果

    • 同时满足以下两个条件

      • 两个物体都有碰撞体
      • 运动的物体有刚体–受物理引擎检测
    • 方法

      • OnCollisionEnter
      • OnCollisionStay
      • OnCollisionExit
  • Trigger–没有碰撞效果

    • 同时满足以下三个条件

      • 两个物体都有碰撞体
      • 其中之一有刚体
      • 其中之一选择isTrigger
    • 方法

      • OnTriggerEnter
      • OnTriggerStay
      • OnTriggerExit
  • Raycast–射线检测,适用于高速运动的物体



版权声明:本文为hunhunee666原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。