Skip to content

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

世界空间中的位置。

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

inverseTransformPoint

javascript
public Insight.Vector3 inverseTransformPoint(Insight.Vector3 p);

将一个点的位置从世界空间变换到局部空间。

Parameters

inverseTransformVector

javascript
public Insight.Vector3 inverseTransformVector(Insight.Vector3 v);

将一个向量从世界空间变换到局部空间。

Parameters

lookAt

javascript
public void lookAt(Insight.Vector3 target, Insight.Vector3 up);

将本 Transform 做旋转, 使得前向量指向目标位置。

Parameters

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

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

transformPoint

javascript
public Insight.Vector3 transformPoint(Insight.Vector3 p);

将一个点的位置从局部空间变换到世界空间。

Parameters

transformVector

javascript
public Insight.Vector3 transformVector(Insight.Vector3 v);

将一个向量从局部空间变换到世界空间。

Parameters

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。