1. 程式人生 > >Unity——初次漫遊專案經驗總結

Unity——初次漫遊專案經驗總結

1 點選物體觸發事件的思路

RaycastHit hit;//射線投射碰撞資訊
                           // 從滑鼠所在的位置發射
            Vector2 screenPosition = Input.mousePosition;//當前滑鼠的位置
            var ray = Camera.ScreenPointToRay(screenPosition);  //從當前螢幕滑鼠位置發出一條射線
            if (Physics.Raycast(ray, out hit) && hit.transform == transform)
//判斷是否點選到例項物體上 { //此處為開關處理 //Debug.Log(this.transform.name); if (!up) { down = false; up = true; } else { down = true; up = false; } }

2.Transform–rotation

2.1 transform.localEulerAngles

使用localEulerAngles進行旋轉的時候,我們要使用

transform.localEulerAngles = new Vector3(x, y,z);

其中,new Vector(x,y,z)為遊戲物體最終旋轉到的目標角度,x.y,z的值分別都是以0為基準,假設遊戲物體的初始角度為(x1,y1,z1),則遊戲物體從(x1,y1,z1)旋轉到(x,y,z),同時也以自身座標系為參考,而不是世界座標系。

2.2 transform.rotation

將尤拉旋轉角轉換為四元素旋轉角

Quaternion rotation= Quaternion.Euler(new Vector3(x, y,z));

Transform.rotation=rotation;

new Vector(x,y,z)為遊戲物體最終旋轉到的目標角度,x.y,z的值分別都是以0為基準,假設遊戲物體的初始角度為(x1,y1,z1),則遊戲物體從(x1,y1,z1)旋轉到(x,y,z),,同時也以自身座標系為參考,而不是世界座標系。

2.3 transform.Rotate(引數)

transform.Rotate(x,y,z):以自身座標系為參考,而不是世界座標系,分別以x度y度z度繞X軸、Y軸、Z軸勻速旋轉

transform.Rotate(軸, Space.Self):以自身座標系為參考

Transform.Rotate(軸,Space.World):以世界座標系為參考

3 Transform position

human.transform.position = new Vector3(x, y, z);

4 Transform father&son

 		GameObject father = GameObject.Find("Canvas");//父目錄
        GameObject f = father.transform.Find("All").gameObject;//子
        f.SetActive(false);
  此方法可以選中active值為false的物件,直接find不可以!!

5 button點選事件純指令碼方式

	Button btn = this.GetComponent<Button>();
    btn.onClick.AddListener(OnClick);
    
    private void OnClick()

6 unity編輯器中的中文輸入問題

將游標放在中英文切換出即可...

7點光源個數限制

進入Edit | Project Settings | Quality介面調整最大點光源個數