Unity——初次漫遊專案經驗總結
阿新 • • 發佈:2018-12-13
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介面調整最大點光源個數