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 //获取碰撞点
通过名字 GameObject.Find("名字");
通过标签 GameObject.FindGameObjectsWithTag()
声明变量为public
特性[serializeField]
不显示[HideInspector]
[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(...);//红色