读一读

获取组件

gameObject.getComponent<组件>();
gameObject.getComponent(typeof(组件)) as 组件;//利用反射获取,javascript与c#通信


添加组件

gameObject.AddComponent<组件>();

Component.enable=true/false;//激活或不激活组件
gameObject.SetActive(true/false);//激活或取消激活GameObject

void OnEnable() //当组件激活时调用
void OnDisable() //当组件不可用时调用
void Destroy() //当组件被销毁时调用
//OnEnable和OnDisable可多次调用
//编辑器结束运行时,会触发OnDisable和Destroy
void OnCollisionEnter/Stay/Exit() 物理碰撞回调函数,需要运动的一方带有Rigidbody组件/Collision
void OnTriggerEnter/Stay/Exit() 触发回调函数,isTrigger勾选时,不进行物理模拟/Collider
collision.contacts //获取碰撞点

  1. 通过名字 GameObject.Find("名字");

  2. 通过标签 GameObject.FindGameObjectsWithTag()


  1. 声明变量为public

  2. 特性[serializeField]

  3. 不显示[HideInspector]

  4. [System.Serializable]对类等数据变量集进行序列化


In Editor Mode : Reset()

Startup : Awake()->onEnable()->Start()

Updates : FixedUpdate()->yield WaitForFixedUpdate()->Update()->yield null and WaitForSeconds->LateUpdate()

Rendering:......

GUI:OnGUI()

Teardown : OnDisable(),OnDestroy()


Awake和Start都是只调用一次的方法

Awake初始化方法,当脚本组件不可用时,还是会调用,Start则不会。一般用来创建变量

Start一般用于给变量赋值,当脚本组件不可用时,则不调用

Update每帧调用一次,一般用于非物理运动。

FixedUpdate每隔固定时间调用一次,一般用于物理运动

Time.deltaTime代表的是执行本函数距离上一次调用的时间间隔


print(...);
Debug.Log(...);//白色
Debug.LogWarring(...);//黄色
Debug.LogError(...);//红色

Directional Light  平行光(太阳)

Point Light 点光源(有范围)

Spot Light  光束(聚光灯)

Area Light   区域光(用于烘焙)

除了平行光,其他光源如果要用阴影的话要调成延迟渲染


右键+WSAD 前后左右漫游场景

QE 上下

Move to view 移动到视图中心

Align With View 移动物体到观察位置

Align View to Selected 以这物体为观察位置


W移动

E旋转

R缩放

T矩形


Snap Settings 固定位移移动旋转缩放物体

或ctrl+移动(w)等,定量移动