读一读

Unity脚本中欧拉角取值范围为(0,360)

transform.localEulerAngles //本地旋转
transform.Rotate(0,45f*Time.deltaTime,0,0,Space.World);//对应x,y,z旋转
transform.Rotate(Vector3 axis,float angle,Space relativeTo=Space.Self);
transform.RotateAround(Vector3 point,Vector3 axis,float angle);//绕世界某点的某个方向轴旋转
transform.LootAt(Vector3 point)//使本transform的z轴一直朝向point

transform.position; //世界位置坐标
transform.localPosition; //相对父物体的本地位置
transform.Translate(x,y,z,Space.Self);//可以是自身坐标轴也可以是Space.World,也可以是其他物体的transform坐标轴

transform.TransformPoint(0,0,2);//相对自身坐标的这个点的世界坐标
transform.position //物体的世界坐标
transform.TransformDirection(0,0,10);//相对自身transform向(0,0,10)方向的世界方向
transform.InverseTransformPoint();//变换位置从世界坐标到自身坐标
transform.InverseTransformDirection();//变换方向从世界坐标到自身坐标

transform.right  本地轴 x轴方向

transform.up  本地轴  y轴正方向

transform.forward  本地轴  z轴正方向


获取组件

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(...);//红色