位置

Transform:
游戲對象(GameObject)位移、旋轉、縮放、父子關系、坐標轉換等相關操作都由它處理。
它是Unity提供的極其重要的類。
Vector3基礎:
Vector3主要是用來表示三維坐標系中的 一個點 或者一個向量。
申明:
Vector3 v = new Vector3();
v.x = 10;
v.y = 10;
v.z = 10;
只傳xy 默認z是0:
Vector3 v2 = new Vector3(10, 10);
一步到位:
Vector3 v3 = new Vector3(10, 10, 10);
Vector的基本計算:
print(v1 + v12);
print(v1 - v12);
print(v1 * 10);
print(v12 / 2);
常用的方向:
print(Vector3.zero);//000
print(Vector3.right);//100
print(Vector3.left);//-100
print(Vector3.forward);//001
print(Vector3.back);//00-1
print(Vector3.up);//010
print(Vector3.down);//0-10
計算兩個點之間的距離的方法:
print(Vector3.Distance(v1, v12));
位置:
相對世界坐標系:this.gameObject.transform
通過position得到的位置:
是相對于 世界坐標系的 原點的位置
可能和面板上顯示的 是不一樣的
因為如果對象有父子關系 并且父對象位置 不在原點 那么和面板上肯定就是不一樣的
print(this.transform.position);
相對父對象:
果想以面板坐標為準來進行位置設置
那一定是通過localPosition來進行設置的
print(this.transform.localPosition);
可能出現(xiàn)是一樣的情況:
父對象的坐標 就是世界坐標系原點0,0,0
對象沒有父對象?
位置的賦值不能直接改變x,y,z 只能整體改變:
this.transform.position = new Vector3(10, 10, 10);
this.transform.localPosition = Vector3.up * 10;
如果只想改一個值x,y和z要保持原有坐標一致:
直接賦值:
this.transform.position = new Vector3(19, this.transform.position.y, this.transform.position.z);
先取出來 再賦值:
?Vector3 vPos = this.transform.localPosition;
vPos.x = 10;
this.transform.localPosition = vPos;
如果你想得到對象當前的 一個朝向?
那么就是通過 trnasform.出來的
對象當前的面朝向:
print(this.transform.forward);
對象當前的頭頂朝向:
print(this.transform.up);
對象當前的右邊:
print(this.transform.right);