Unity 常用指令 龍華科技大學多媒體與遊戲發展科學系 林志勇編輯, 請勿外流轉載, 上傳網路
範例用到的指令 function Update function OnGUI GUI.Button GUI.HorizontalSlider; function OnCollisionEnter Input.GetKeyUp gameobject.find transform.rotate transform.translate transform.position transform.position.z transform.eulerangles Vector3 gameobject.find( GUI Text ). guitext.text transform.rigidbody.usegravity transform.rigidbody.velocity transform. rigidbody.iskinematic var cube=instantiate(cube,vector3(0,y,x),quaternion.identity); particleemitter.emit = true;
遊戲物件 (GameObject)
增加元件 (AddComponent) 移除元件 (RemoveComponent)
腳本參考 (Scripting Reference)
行為 (Mono Behavior) 每個 Frame 都執行一次 function Update () { } 當 Update 被呼叫後, 執行 LateUpdate 通常用在 Camera 設定上 function LateUpdate () { } 在某些固定 Frame 被呼叫通常用在 Rigidbody 設定上 function FixedUpdate () { }
行為 (Mono Behavior) 在 Script 初始化時執行 function Awake () { } 在 Awake 後執行 function Start () { } 每個 Frame 都執行一次, 只用在 GUI function OnGUI () { }
function OnMouse ( 滑鼠 ) ( 參考 021) function OnMouseEnter (){} function OnMouseOver (){} function OnMouseExit (){} function OnMouseDown (){} function OnMouseUp (){}
function OnTrigger ( 觸發 ) ( 參考 025) function OnTriggerEnter (other : Collider ){} function OnTriggerExit (other : Collider ){} function OnTriggerStay (other : Collider ){}
function OnCollision( 碰撞 ) ( 參考 057) function OnCollisionEnter(collisionInfo : Collision){ } function OnCollisionStay(collisionInfo : Collision) { } function OnCollisionExit(collisionInfo : Collision) { }
GUI( 參考 U5) 按鈕 :GUI.Button function OnGUI () { if (GUI.Button (Rect (10,10,150,100), "I am a button")) { } } 水平滑軌 : GUI.HorizontalSlider var hs : float; hs = GUI.HorizontalSlider (Rect (25, 25, 100, 30), hs, 0.0, 10.0); 切換 : GUI.Toggle var togglebool = true; togglebool = GUI.Toggle (Rect (25, 25, 100, 30), togglebool, "Toggle");
偵測輸入 ( 參考 U7) 鍵盤 :Input.GetKeyUp( up ) 滑鼠 :Input.GetMouseButtonDown(0) 通常放在 function Update(){ Input.GetKeyUp( up ) }
找尋遊戲物件 gameobject.find( Cube ) 程式放在 Cube transform.rotate(10,10,10) 程式不放在 Cube 上 ( 例如放在 Camera) gameobject.find( Cube ). transform.rotate(10,10,10)
找尋遊戲物件標籤 (Tag) gameobject.findwithtag ("Player").
顯示數字資料 (GUIText) var i : int; gameobject.find( GUI Text ). guitext.text=i.tostring(); 轉字串函數 :ToString()
控制遊戲物件 (transform) ( 參考 U6) 旋轉 :transform.rotate(10,10,10) 移動 :transform.translate(10,10,10) 位置 :transform.position=vector3(1,1,1) 位置 :transform.position.z=1; 角度 :transform.eulerangles=vector3(1,1,1) 向量 :Vector3
剛體 (rigidbody) ( 參考 B00) 使用重力 : transform.rigidbody.usegravity=true 剛體速度 : transform.rigidbody.velocity=vector3(1,1,1) 不被物理性質影響 : transform. rigidbody.iskinematic = true 加力量 transform. rigidbody.addforce (0, 10, 0) 加扭矩 transform. rigidbody.addtorque (0, 10, 0)
增加物理材料 (Physic Materials) 彈性 (Bouncy)
複製物件 ( 參考 088, 085) var cube=instantiate(cube,vector3(0,y,x),quaternion.identity);
燈光 ( 參考 U3) 投射光角度 light.spotangle = 10 燈光強度 light.intensity =1 燈光範圍 light.range =10
renderer.enabled 使 3D 物件看的見 transform.renderer.enabled=true; 隱藏 3D 物件 transform.renderer.enabled=false;
增加資源 (Assets)
觸發分子系統 分子系統 (Particles) ( 參考 078) particleemitter.emit = true; yield WaitForSeconds(1); particleemitter.emit = false;
分子系統 (Particles)
Application( 參考 043) 切換關卡 Application.LoadLevel(0) 列印目前載入關卡編號 print(application.loadedlevel); 離開程式 Application.Quit();
動畫 (Animation) ( 參考 U15) animation.play() animation.stop() animation.wrapmode = WrapMode.Loop;
圖片 ( 參考 122) gameobject.find("guitexture").guitexture.te xture=resources.load(i.tostring());
影片 ( 參考 046) // Assigns a movie texture to the current transform, plays it // and when the user presses the *space* key, stops the video. var movtexture : MovieTexture; function Start () { renderer.material.maintexture = movtexture; movtexture.play(); } function Update() { if(input.getkeydown(keycode.space)) movtexture.stop(); }
聲音 (audio)( 參考 005) var myclip : AudioClip; function Start (){ audio.playoneshot(myclip); } audio.play(); audio.stop(); // Delay a clip by 1 sec (44100 samples) audio.play(44100); audio.pause();
數學 (Mathf) Abs Approximately Ceil CeilToInt Clamp Clamp01
數學 (Mathf) Sin Cos Tan PI Asin Acos Atan Atan2 Deg2Rad Rad2Deg DeltaAngle
數學 (Mathf) ClosestPowerOfTwo IsPowerOfTwo NextPowerOfTwo Pow Exp Floor FloorToInt Infinity NegativeInfinity Epsilon Log Log10
數學 (Mathf) Lerp InverseLerp LerpAngle MoveTowards MoveTowardsAngle Max Min
數學 (Mathf) PingPong Repeat Round RoundToInt Sign
數學 (Mathf) SmoothStep SmoothDamp SmoothDampAngle Sqrt
傳值 ( 參考 028) PlayerPrefs.SetInt("Player Score", 10); print (PlayerPrefs.GetInt("Player Score")); PlayerPrefs.SetFloat("Player Score", 10.0); print (PlayerPrefs.GetFloat("Player Score")); PlayerPrefs.SetString("Player Name", "Foobar"); print (PlayerPrefs.GetString("Player Name")); PlayerPrefs.Save()
計算時間 ( 參考 U11) Time.time
007_ 計分 長條狀的 GUI
008_Clock( 計分 圓形 )