Appearance
Transform (JavaScript)
Transform
Scripting Name:Insight.Transform
Transform 组件,记录了名称、位置、旋转、缩放,以及场景的树状层级结构。
Properties
childCount
type : number
(只读)子结点 Transform 的数量。
forward
type : Insight.Vector3
(只读)世界空间中前向量。
localPosition
type : Insight.Vector3
局部空间中的位置。
localRotation
type :Insight.Quaternion
局部空间中的旋转。
javascript
// sample:
var Rotater = function(game_object){ this.game_object = game_object; this.rot = 0; this.speed = 0;}Rotater.prototype = Object.assign(Object.create(Object.prototype), { -- 以(0,1,0)为旋转轴匀速旋转
Update: function() { this.rotateAngle = this.rotateAngle + Insight.Time.deltaTime * this.speed; this.gameobject.transform.localRotation = Insight.Quaternion.AngleAxis(this.rotateAngle, Insight.Vector3.New(0,1,0)); }}
Rotater
localScale
type : Insight.Vector3
局部空间中的缩放。
localToWorldMatrix
type :Insight.Matrix4x4
(只读)局部到世界空间变换矩阵。
lossyScale
type : Insight.Vector3
(只读)世界空间中缩放。
⚠️ 如果父 Transform 有非一致的缩放(如(1,2,3)),本 Transform 又有旋转,则无法获得正确的世界空间缩放。
name
type : number
Transform 组件名称。
parent
type :Insight.Transform
(只读)父结点的 Transform。
position
type : Insight.Vector3
世界空间中的位置。
right
type : Insight.Vector3
(只读)世界空间中右向量。
rotation
type :Insight.Quaternion
世界空间中的旋转。
up
type : Insight.Vector3
(只读)世界空间中上向量。
worldToLocalMatrix
type :Insight.Matrix4x4
(只读)世界到局部空间变换矩阵。
Methods
toString
javascript
public string toString();
将 transform 内容以一定格式转为 string 类型。
javascript
// sample:
this.transform = this.gameobject.transform;Insight.Debug.Log(this.transform.toString());
find
javascript
public Insight.Transform find(string namePath);
通过 Transform 路径和名称查找到子 Transform。
Parameters
- namePath : string 要找的子 Transform 路径和名称
getChild
javascript
public Insight.Transform getChild(number index);
通过索引查找到子 Transform。
Parameters
- index : number 要找的子 Transform 的索引
inverseTransformDirection
javascript
public Insight.Vector3 inverseTransformDirection(Insight.Vector3 p);
将一个方向从世界空间变换到局部空间。
Parameters
- p : Insight.Vector3 方向
inverseTransformPoint
javascript
public Insight.Vector3 inverseTransformPoint(Insight.Vector3 p);
将一个点的位置从世界空间变换到局部空间。
Parameters
- p : Insight.Vector3 点的位置
inverseTransformVector
javascript
public Insight.Vector3 inverseTransformVector(Insight.Vector3 v);
将一个向量从世界空间变换到局部空间。
Parameters
- v : Insight.Vector3 向量
lookAt
javascript
public void lookAt(Insight.Vector3 target, Insight.Vector3 up);
将本 Transform 做旋转, 使得前向量指向目标位置。
Parameters
- target : Insight.Vector3 世界空间中的目标位置
- up : Insight.Vector3 世界空间中上向量
rotate
javascript
public void rotate(Insight.Vector3 e, boolean world_space=true);
将本 Transform 做旋转。
Parameters
- e : Insight.Vector3 各个轴的欧拉角度数
- world_space : boolean 是否在世界空间进行
rotate
javascript
public void rotate(number ex, number ey, number ez, boolean world_space=true);
将本 Transform 做旋转。
Parameters
- ex : number x 轴的欧拉角度数
- ey : number y 轴的欧拉角度数
- ez : number z 轴的欧拉角度数
- world_space : boolean 是否在世界空间进行
rotate
javascript
public void rotate(Insight.Vector3 axis, number angle, boolean world_space=true);
将本 Transform 做旋转。
Parameters
- axis : Insight.Vector3 旋转轴
- angle : number 旋转角度数
- world_space : boolean 是否在世界空间进行
rotateAround
javascript
public void rotateAround(Insight.Vector3 point, Insight.Vector3 axis, number angle);
将本 Transform 绕着世界空间中一个轴旋转。
Parameters
- point : Insight.Vector3 世界空间中轴上一点
- axis : Insight.Vector3 世界空间中轴的方向
- angle : number 旋转角度数
setParent
javascript
public void setParent(Insight.Transform t, boolean worldPositionStays);
设置该 Transform 的父 Transform。
Parameters
- t : Insight.Transform 父 Transform
- worldPositionStays : boolean 是否保持自身的世界变换,true 表示保持自身的世界变换,false 表示只保持自身相对于父 Transform 的变换
javascript
// sample:
var root = Insight.GameObject.Find("Root");this.gameobject.transform.setParent(root.transform, true);
transformDirection
javascript
public Insight.Vector3 TransformDirection(Insight.Vector3 p);
将一个方向从局部空间变换到世界空间。
Parameters
- p : Insight.Vector3 方向
transformPoint
javascript
public Insight.Vector3 transformPoint(Insight.Vector3 p);
将一个点的位置从局部空间变换到世界空间。
Parameters
- p : Insight.Vector3 点的位置
transformVector
javascript
public Insight.Vector3 transformVector(Insight.Vector3 v);
将一个向量从局部空间变换到世界空间。
Parameters
- v : Insight.Vector3 向量
translate
javascript
public void translate(Insight.Vector3 v, boolean world_space=true);
将本 transform 做平移。
Parameters
- v : Insight.Vector3 平移向量
- world_space : boolean 是否在世界空间中进行
translate
javascript
public void translate(number x, number y, number z, boolean world_space=true);
将本 transform 做平移。
Parameters
- x : number x 平移分量
- y : number y 平移分量
- z : number z 平移分量
- world_space : boolean 是否在世界空间中进行
Inherited Properties(继承自 Component)
gameObject
type : Insight.GameObject
(只读)该组件所依附的 GameObject。
isActiveAndEnabled
type : boolean
(只读)该组件是否可用,且其依附的 GameObject 是否是活跃状态。
name
type : string
(只读)所依附的 GameObject 的名称。
tag
type : string
(只读)所依附的 GameObject 的 Tag。
⚠️ 暂时未启用
transform
type : Insight.Transform
(只读)所依附的 GameObject 的 transform。