Unity API 學習筆記——05

十一、Quaternion四元數以及歐拉角

1、獲取歐拉角:transform.eulerAngles;
2、獲取四元數:transform.rotation;
3、四元數轉換歐拉角:transform.rotation.enlerAngles;
4、歐拉角轉換四元數:Quaternion.Euler(transform.enlerAngles);
5、LookRotation:創建具有指定的正向和向上方向的旋轉。
6、Lerp:用t在a和b之間進行插值,然後對結果進行歸一化。參數t的取值範圍爲[0,1]。
7、Slerp:通過t在a和b之間進行球面插值。參數t被夾在[0,1]範圍內。

測試代碼:(使player轉向enemy)

public class API14Quaternion : MonoBehaviour {
    public Transform player;
    public Transform enemy;
	void Update () {
        if(Input.GetKey(KeyCode.Space)){
            Vector3 dir = enemy.position - player.position;
            dir.y = 0;
            Quaternion target= Quaternion.LookRotation(dir);
            player.rotation = Quaternion.Lerp(player.rotation, target, Time.deltaTime);
        }
	}
}

十二、Rigidbody剛體組件

1、position:剛體的位置。
2、MovePosition:將剛體移動到指定位置。(持續移動比較平滑)
3、rotation:剛體的旋轉。
4、MoveRotation:將剛體旋轉到旋轉。(持續移動比較平滑)
5、AddForce:給剛體增加一個力。
6、AddForceAtPosition:在位置施加力。因此,這將對物體施加一個力矩和力。

十三、Camera類

1、main:第一個啓用的標記爲“主攝像頭”的攝像頭(只讀)。
2、ScreenPointToRay:返回從攝像機通過屏幕點的光線。

測試代碼:(通過camera把屏幕上的點轉化爲射線進行射線檢測)

public class API16Camera : MonoBehaviour {
    private Camera mainCamera;
	void Start () {
        //mainCamera= GameObject.Find("MainCamera").GetComponent<Camera>();
        mainCamera = Camera.main;
	}
	void Update () {
        //Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
        //RaycastHit hit;
        //bool isCollider = Physics.Raycast(ray, out hit);
        //if (isCollider)
        //{
        //    Debug.Log(hit.collider);
        //}
        Ray ray = mainCamera.ScreenPointToRay(new Vector3(200, 200, 0)); //發出一條線
        Debug.DrawRay(ray.origin, ray.direction * 10, Color.yellow);
	}
}

十四、Application

1、Application:包含遊戲數據文件夾的路徑(只讀)。

測試代碼:

public class API17Application_xxxPath : MonoBehaviour {
    void Start()
    {
        print(Application.dataPath);
        print(Application.streamingAssetsPath);
        print(Application.persistentDataPath);
        print(Application.temporaryCachePath);	
	}
}

2、companyName:返回應用程序公司名稱(只讀)。
3、identifier:在運行時返回應用程序標識符。
4、installerName:返回安裝應用程序的商店或包的名稱(只讀)。
5、installMode:返回應用程序安裝模式(只讀)。
6、isEditor:是否在Unity編輯器中運行。
7、isFocused:玩家當前是否有焦點。
8、isMobilePlatform:目前運行時平臺是一個已知的移動平臺。
9、isPlaying:在任何類型的播放器中返回true(只讀)。
10、platform:返回遊戲運行的平臺(只讀)。
11、productName:返回應用程序產品名稱(只讀)。
12、runInBackground:當應用程序在後臺時,是否運行。
13、unityVersion:用於播放內容的Unity運行時版本。
14、version:返回應用程序版本號(只讀)。
15、OpenURL:在瀏覽器中打開url。
16、Quit:退出應用程序。
17、CaptureScreenshot:截圖。

十五、切換加載場景(場景管理器SceneManager)

  • UnityEngine.SceneManagement
    1、LoadScene:在構建設置中通過其名稱或索引加載場景。
    2、LoadSceneAsync:在後臺異步加載場景。(過渡頁面)
    3、sceneCount:當前加載場景的總數。
    4、sceneCountInBuildSettings:構建設置中的場景數。
    5、CreateScene:使用給定的名稱在運行時創建一個空的新場景。
    6、GetActiveScene:獲取當前的場景。
    7、GetSceneAt:在SceneManager的添加場景列表的索引處獲取場景。
    8、GetSceneByBuildIndex:從構建索引中獲取場景結構。
    9、SetActiveScene:設置場景爲激活。
    10、activeSceneChanged:(事件)加載新的場景時。
    11、sceneLoaded:(事件)有新場景加載完成時。
    12、sceneUnloaded:(事件)場景卸載完時。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章