一、Animation.CrossFade命令做用是(C) A 動畫消失 B動畫轉換 C東環的淡入爲其餘動畫異步
二、Application.loadedLevel命令爲(A) A加載關卡 B異步加載關卡 C加載動做編輯器
三、反向播放動畫的方法爲?ide
Animation.Rewind工具
四、碰撞檢測須要物體具有什麼屬性?動畫
兩個物體都必須帶有碰撞器(Collider),其中一個物體還必須帶有Rigidbody剛體。this
五、獲取、增長、刪除組件的命令分別是什麼?調試
獲取:GetComponent 增長:AddComponent 刪除:Destroycode
六、調試記錄到控制檯的命令式什麼?orm
Debug.Log();遊戲
七、編輯器類存放的路徑是什麼?
工程目錄下的Assets\/Editor文件夾下。
八、使用原聲的GUI建立一個能夠拖動的窗口的命令是什麼?
GUI.DragWindow();
九、localPosition與position的使用區別
localPosition:自身位置,相對於父級的變換的位置。 Position:在世界座標transform的位置
十、連線題(漢英對照)
Mathf.Round(四捨五入) 插值 Mathf.Clamp(限制) 四捨五入 Mathf.Lerp(插值) 限制
十一、寫一個計時器工具,從遊戲開始計時,格式爲00:00:00
using UnityEngine; using System.Collections; public class Cube : MonoBehaviour { private float timer = 0f; private int h = 0; private int m = 0; private int s = 0; private string timeStr = string.Empty; // Update is called once per frame void Update () { timer += Time.deltaTime; if (timer >= 1f) { s++; timer = 0; } if (s >= 60) { m++; s = 0; } if (m >= 60) { h++; m = 0; } if (h >= 99) { h = 0; } } void OnGUI(){ timeStr = string.Format ("{0:D2}:{1:D2}:{2:D2}", h, m, s); GUI.Label (new Rect (10, 10, 100, 200), timeStr); } }
十二、上機題:用鼠標實如今場景中拖動物體,用鼠標滾輪實現縮放(用一個Cube便可)
在場景中添加一個Plan,Camera,Directional Light,Cube。添加兩個腳本scrollerScirpt(掛在Camera),CubeDragScript(掛在Cube上)。
1.鼠標滾輪實現縮放:將攝像機的鏡頭拉近或者拉遠,調整攝像機的視角就能夠實現,主要實現代碼以下:
void Update () { //鼠標滾輪的效果 //Camera.main.fieldOfView 攝像機的視野 //Camera.main.orthographicSize 攝像機的正交投影 //Zoom out if (Input.GetAxis("Mouse ScrollWheel") < 0) { if (Camera.main.fieldOfView <= 100) Camera.main.fieldOfView += 2; if (Camera.main.orthographicSize <= 20) Camera.main.orthographicSize += 0.5F; } //Zoom in if (Input.GetAxis("Mouse ScrollWheel") > 0) { if (Camera.main.fieldOfView > 2) Camera.main.fieldOfView -= 2; if (Camera.main.orthographicSize >= 1) Camera.main.orthographicSize -= 0.5F; } }2.鼠標實如今場景中拖動物體:
解決思路就是將世界座標轉換成屏幕座標,而後計算物體與鼠標之間移動量,循環鼠標被按下操做,獲得鼠標的當前位置,加上計算好的移動量,將新的座標賦值給物理就好了。主要是開啓一個協同程序(Corountine)來處理
主要代碼以下:
// Use this for initialization void Start () { StartCoroutine(OnMouseDown()); } IEnumerator OnMouseDown() { //將物體由世界座標系轉換爲屏幕座標系 Vector3 screenSpace = Camera.main.WorldToScreenPoint(transform.position);//三維物體座標轉屏幕座標 //完成兩個步驟 1.因爲鼠標的座標系是2維,須要轉換成3維的世界座標系 // // 2.只有3維座標狀況下才能來計算鼠標位置與物理的距離,offset便是距離 //將鼠標屏幕座標轉爲三維座標,再算出物體位置與鼠標之間的距離 Vector3 offset = transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z)); while (Input.GetMouseButton(0)) { //獲得如今鼠標的2維座標系位置 Vector3 curScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z); //將當前鼠標的2維位置轉換成3維位置,再加上鼠標的移動量 Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset; //curPosition就是物體應該的移動向量賦給transform的position屬性 transform.position = curPosition; yield return new WaitForFixedUpdate(); //這個很重要,循環執行 } }