Unity学习笔记 01 —— 常用API

Unity常用API

脚本对象

在Unity中,所有的脚本都默认派生了基类MonoBehaviourMonoBehaviour类提供了脚本的基本框架,允许开发者将脚本附加到编辑器中的游戏对象,并提供了一系列常用事件的挂钩。
通常,不建议任何派生了MonoBehaviour类的脚本声明构造函数。

一个简单的脚本文件示例

using UnityEngine;
public class FirstScript : MonoBehaviour
{
    public GameObject cube;
    // 在首次调用Update前被调用,只会被调用一次
    void Start()
    {
        // 向控制台输出字符串
        // Debug.Log函数对性能影响极大,不应当出现在发行版应用程序中
        Debug.Log("Start.");
    }
    // 每次渲染帧时被调用
    void Update()
    {
        Debug.Log("Update.");
    }
}

常用脚本生命周期

下面列出的是脚本使用中常见的生命周期事件

初始化

Awake

当物体载入时立即调用

OnEnable

脚本对象被启用时被调用

Start

当对象载入且脚本被启用后被且仅被调用一次

编辑器

Reset

脚本被挂载时或脚本被重置时被调用

物理

FixedUpdate

脚本被启用后,该函数将以固定的时间间隔被调用,不受其他阶段的影响

OnTriggerXXX

满足触发条件时被调用

OnCollisionXXX

满足碰撞条件时被调用

输入事件

OnMouseXXX

以下是几个常见鼠标事件

OnMouseEnter

鼠标移入对象

OnMouseOver

鼠标经过

OnMouseExit

鼠标离开

OnMouseUp

释放鼠标时调用

OnMouseDown

鼠标在对象上按下鼠标

游戏逻辑

Update

脚本被调用后,在每次渲染场景时调用

LateUpdate

Update函数之后被调用

场景渲染

OnBecameVisible

当Mesh可见时被调用

OnBecameInvisible

当Mesh不可见时被调用

退出阶段

OnApplicationQuit

当应用程序退出时被调用

OnDisable

当对象不可用时被调用

OnDestroy

当对象被销毁时被调用

常用API

下文涉及的类关系图

类图并不完整,请以官方文档为准

Inheritance
Composition
Inheritance
Object
+Destroy()
+Initialize()
GameObject
+AddComponent()
+GetComponent()
+GetComponents()
Component
+GetComponent<>()
+SendMessage()

简单调试

Debug.Log函数和print()函数可以用于向控制台输出字符串。

这两个函数都会消耗大量系统资源,不建议在最终发行版中调用这些函数。

组件Component

GetComponent<T>泛型函数,用于获取T类型的组件
GetComponents<T>泛型函数,用于获取该对象下所有T类型的对象的集合,返回T[]数组
GetComponents<Component>以Component类型为作为T时,可获取该对象下所有对象的集合
GetComponentsInChildren<T>获取除自身外所有后代的T类型的组件的集合

变换Transform

场景中的每一个对象都有一个变换。它用于存储和操作对象的位置、旋转和缩放。每一个变换都可以有一个腹肌,这使得开发者可以分层地应用变换。它还支持枚举器,即可以通过以下函数遍历子项:

foreach (Transform child in transform)
{
    child.position += Vector3.up * 10.0f;
}

变换中的常见公共函数和变量如下:

Rotate

以不同的方式旋转游戏对象

transform.Rotate(0, 10, 0);
// 以自身坐标系为基准,绕Y轴顺时针旋转10度
transform.Rotate(0, 10, 0, Space.World);
// 以世界坐标系为基准,绕Y轴顺时针旋转10度
Translate

根据方向和距离移动变换

transform.Translate(0, 0, 1);   // 以自身坐标为基准,向Z轴方向移动一单位
transform.Translate(0, 0, 1, Space.World);  // 以世界坐标为基准,向Z轴方向移动一单位
Find

通过名字查找子项并返回,最多查找到子代和子代的子代

GetChild

通过索引获得子物体的变换组件

SetParent

设置该物体的父对象,传入参数为null时解除父对象关系

parent

获取该对象的父对象

root

获取该对象的根对象

DetachChildren

清楚所有子项的父级

游戏对象GameObject

游戏对象是Unity场景中所有实体的基类

游戏对象的常见公共函数和变量如下:

activeInHierarchy

游戏对象在场景中的活动状态

activeSelf

游戏对象的本地活动状态,是个只读变量

Find

按照名称查找游戏对象并返回

FindGameObjectsWithTag

根据标签名查找游戏对象并以数组形式返回。当为查找到对象时返回空数组。

FindWithTag

根据标签名查找一个人游戏对象并返回。当为查找到对象时返回null。

对象Object

此处对象指命名空间UnityEngine中的Object类,是Unity编辑器中引用的所有对象的基类,继承自该类的类可以被拖放到Inspector中的字段中。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值