Unity常⽤脚本:Transform Transform组件
Position, rotation and scale of an object.物体的位置、旋转、缩放。
场景中对象都有Transform组件(UGUI为RectTransform),此组件不可移除 。
游戏物体的⽗⼦关系是基于Transform组件建⽴起来的。
某⼀游戏物体没有⽗物体,则Transform显⽰其世界坐标中的属性;如果有⽗物体,则显⽰其相对于⽗物体的属性。
脚本API
脚本中直接写transform表⽰当前绑定此脚本的物体的Transform。
属性:
public Vector3 localPosition { get; set; }物体相对于⽗物体transform的位置。
public Vector3 eulerAngles { get; set; }物体在世界坐标系中以欧拉⾓为单位的旋转。
public Vector3 localEulerAngles { get; set; }物体相对于⽗物体坐标以欧拉⾓为单位的旋转。
public Vector3 right { get; set; }物体在世界坐标系中的右⽅向(场景中红⾊轴正⽅向)。
public Vector3 up { get; set; }物体在世界坐标系中的上⽅向(场景中绿⾊轴正⽅向)。
public Vector3 forward { get; set; }物体在世界坐标系中的前⽅向(场景中蓝⾊轴正⽅向)。
public Quaternion rotation { get; set; }物体在世界坐标系中以四元数表⽰的旋转。
public Vector3 position { get; set; }物体在世界坐标系中的位置。
public Quaternion localRotation { get; set; }物体相对于⽗物体以四元数表⽰的旋转。
public Transform parent { get; set; }物体的⽗物体的Transform
public Matrix4x4 worldToLocalMatrix { get; }世界坐标系转换为局部坐标系的矩阵(只读)。
public Matrix4x4 localToWorldMatrix { get; }局部坐标系转换为世界坐标系的矩阵(只读)。
public Transform root { get; }层次结构中最顶层的根物体的Transform。
public int childCount { get; }物体的⼦物体的数量。
public Vector3 lossyScale { get; }物体的全局缩放⽐例。
public bool hasChanged { get; set; }物体Transform属性是否发⽣改变。
public Vector3 localScale { get; set; }物体相对于⽗物体的缩放。
public int hierarchyCapacity { get; set; }物体当前所在的树状层级结构的层次容量。即当前层级树最⼤可以容纳的节点数⽬,从整个树中的任意⼀个节点访问此属性,所获取的层次容量都是相同的。此属性是⾃动增长的,即当物体所在层级树发⽣层次变动(节点数增加)时,如果当前树的容量不⾜,会⾃动扩容。
public int hierarchyCount { get; }物体所处的相互关联的树状层级结构中,存在的层次(节点)的数⽬。⽅法
public void DetachChildren();
摘要: Unparents all children.解除所有⼦物体。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start ()
{
transform.DetachChildren();
}
}
--->
public Transform Find(string name);
摘要:Finds a child by name and returns it. 按名字查⼦元素并返回它。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start ()
{
Debug.Log( transform.Find("Sphere/Sphere (1)") );
}
}
-
-->
public Transform GetChild(int index);
摘要:Returns a transform child by index.返回索引对应的⼦物体的Transform。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start ()
{
Debug.Log( transform.GetChild(1) );
}
}
--->
public int GetSiblingIndex();
摘要: Gets the sibling index.获取同级索引。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
void Start ()
{
Debug.Log( transform.GetSiblingIndex());
}
}
public Vector3 InverseTransformDirection(Vector3 direction);
摘要:Transforms a direction from world space to local space. The opposite of Transform.TransformDirection.
将⽅向从世界坐标变换到⾃⾝坐标。和Transform.TransformDirection相反。
public Vector3 InverseTransformDirection(float x, float y, float z);
摘要:Transforms the direction x, y, z from world space to local space. The opposite of Transform.TransformDirection.将⽅向x, y, z从世界坐标变换到局部坐标。
public Vector3 InverseTransformPoint(float x, float y, float z);
摘要:Transforms the position x, y, z from world space to local space.
将位置x,y,z从世界坐标变换到局部坐标。
public Vector3 InverseTransformPoint(Vector3 position);
摘要: Transforms position from world space to local space.将位置从世界坐标转换为局部坐标。
public Vector3 InverseTransformVector(Vector3 vector);
摘要: Transforms a vector from world space to local space. The opposite of Transform.TransformVector.
将向量从世界坐标变换到局部坐标。
public Vector3 InverseTransformVector(float x, float y, float z);
摘要:Transforms the vector x, y, z from world space to local space. The opposite of Transform.TransformVector.将向量x,y,z从世界坐标变换到局部坐标。
public bool IsChildOf(Transform parent);
摘要:Is this transform a child of parent?判断物体是否为指定物体的⼦物体。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
Transform cube;
Transform sphere;
Transform capsule;
void Start ()
{
cube = GameObject.Find("Cube").transform;
sphere = GameObject.Find("Sphere").transform;
capsule = GameObject.Find("Capsule").transform;
Debug.Log(sphere.IsChildOf(cube));
Debug.Log(cube.IsChildOf(sphere));
Debug.Log(capsule.IsChildOf(cube));
Debug.Log(capsule.IsChildOf(sphere));
}
}
--->
public void LookAt(Transform target);
rotate属性
摘要:Rotates the transform so the forward vector points at target's current position.
旋转变换,使正向向量指向⽬标的当前位置。使物体朝向指定物体。
(重载暂略)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
Transform cube;
Transform sphere;
void Start ()
{
cube = GameObject.Find("Cube").transform;
sphere = GameObject.Find("Sphere").transform;
cube.LookAt(sphere);
}
}
---> public void Rotate(Vector3 eulerAngles);
摘要:使物体旋转到指定⾓度。
(重载暂略)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour
{
Transform cube;
void Start ()
{
cube = GameObject.Find("Cube").transform;
cube.Rotate(new Vector3(0,0,30));
}
}
---> public void RotateAround(Vector3 point, Vector3 axis, float angle); 摘要:使物体围绕另⼀物体公转。
(重载暂略)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论