Transform

class in UnityEngine

https://docs.unity3d.com/kr/current/ScriptReference/Transform.html


객체의 위치, 회전 및 크기 조절


장면의 모든 객체에는 Transform이 있습니다. 객체의 위치, 회전 및 크기를 저장하고 조작하는 데 사용됩니다. 모든 Transform에는 부모가있어 계층 적으로 위치, 회전 및 크기 조절을 적용 할 수 있습니다. 이는 계층 구조 창에 표시되는 계층 구조입니다. 또한 열거자를 지원하므로 다음을 사용하여 자식을 반복 할 수 있습니다.


using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Example() { foreach (Transform child in transform) { child.position += Vector3.up * 10.0F; } } }

변수

Transform에 포함되는 children 수입니다.


hasChanged

Has the transform changed since the last time the flag was set to 'false'?


hierarchyCapacity

The transform capacity of the transform's hierarchy data structure.


hierarchyCount

The number of transforms in the transform's hierarchy data structure.


parent

Transform의 부모 Transform입니다.

부모를 변경하면 localPosition, localscale 및 localRotation이 수정되지만 Position, Rotation 및 Scale은 동일하게 유지됩니다. 


root

Transform의 최상위 parent를 반환합니다.


position

월드 공간에서의 transform의 position입니다.


rotation

월드 공간에서의 transform의 Quaternion으로 저장된 rotation입니다. 


eulerAngles

월드 공간에서의 transform의 rotation을 오일러방식으로 반환합니다.


localPosition

부모로부터 상대적인 position입니다.


localRotation

부모로부터 상대적인 rotation입니다.


localEulerAngles

부모로부터 상대적인 rotation을 오일러방식으로 반환합니다.


lossyScale

월드 공간기준 scale입니다. (Read Only).


localScale

부모로부터 상대적인 scale입니다.


forward

월드 공간에서 Transform의 파란 축입니다.

transform.rotation * Vector3.forward 와 동일합니다.


right

월드 공간에서 Transform의 빨간색 축입니다.

transform.rotation * Vector3.right와 동일합니다.


up

월드 공간에서 Transform의 녹색 축입니다.

transform.rotation * Vector3.up과 동일합니다.


localToWorldMatrix

local 위치를 world 공간의 위치로 변한하기 위한 Matrix를 반환합니다. (Read Only).

매트릭스 사용이 불편하다면 TransformPoint 를 사용하세요.

셰이더 매개 변수를 설정하는 경우 Renderer.localToWorldMatrix 를 사용해야 합니다.


worldToLocalMatrix

world공간의 위치를 local위치로 변환하기 위한 Matrix를 반환합니다. (Read Only).

매트릭스 사용이 불편하다면 InverseTransformPoint 를 사용하세요.

셰이더 매개 변수를 설정하는 경우 Renderer.worldToLocalMatrix 를 사용해야 합니다.


Public 함수

모든 children의 parent를 null로 만듭니다. children의 world공간의 transform은 변하지 않습니다.

child의 name으로 child를 반환합니다.
찾지 못한경우 null이 반환됩니다.
"/" 문자가 포함된경우 계층 구조로 검색합니다.
transform.Find("magazine/ammo");
index에 해당하는 child를 반환합니다.

해당 transform의 형제 index를 반환합니다.

해당 transform의 형제 index를 설정합니다.
Hierarchy상의 순서가 변경됩니다. 
음수를 입력시 0번째로 이동합니다.
parent.childCount와 같거나 많은 경우 parent.childCount -1 로 이동됩니다.
이동된 위치의 다른 형제들은 한칸씩 뒤로 밀려납니다.

transform의 형제 index를 처음으로 이동시킵니다.

transform의 형제 index를 마지막으로 이동시킵니다.

해당 transform이 입력받은 transform 자신 또는 입력받은 transform의 자식(계층구조 포함) 인가?

Transfomr의 parent를 설정합니다.
public void SetParent (Transform parent);
public void SetParent (Transform parent, bool worldPositionStays);

worldPositionStays가 true인 경우 world position,rotation,scale이 유지됩니다.

flase인 경우 localPosition, localRotation, localScale이 유지되면서 world가 변경됩니다.


월드좌표계 기준으로 position과 rotation을 설정합니다.

Transform을 방향과 거리 만큼 이동시킵니다.
public void Translate ( Vector3 translation , Space relativeTo = Space.Self);
relativeTo가 생략되거나 Space.Self로 설정되면 이동은 로컬축으로 적용됩니다. 
relativeToSpace.World 인 경우 움직임이 월드 좌표계를 기준으로 적용됩니다.
public void Translate (Vector3 translationTransform relativeTo);
이동은 relativeTo로컬 좌표계 에 상대적으로 적용 됩니다. 
relativeTo이 null 인 경우, 이동은 월드좌표계를 기준으로 적용됩니다.

//월드좌표계 방향 기준 이동 transform.Translate(Vector3.forward, Space.World); transform.position += Vector3.forward; transform.Translate(Vector3.forward, null); //로컬좌표계 방향 기준 이동 transform.Translate(Vector3.forward, Space.Self); transform.position += (transform.rotation * Vector3.forward); //매개변수 transform의 로컬좌표계 방향 기준 이동 transform.Translate(Vector3.forward, tf); transform.position += (tf.rotation * Vector3.forward);

Transform의 forward가 target의 position을 향하도록 transform을 회전합니다.
public void LookAt ( Transform target , Vector3 worldUp = Vector3.up);
public void LookAt ( Vector3 worldPosition , Vector3 worldUp = Vector3.up);
worldUp 방향이 transform의 up이 되도록 합니다. 생략시 월드좌표계의 up방향이 됩니다.

transform을 회전합니다.
public void Rotate ( Vector3 eulerAngles , Space relativeTo = Space.Self);
z, x, y 순서대로 회전합니다. relativeTo가 설정되지 않거나 Self인경우 로컬좌표계, World인경우 월드좌표계기준으로 회전합니다.
public void Rotate (Vector3 axis, float angle, Space relativeTo= Space.Self);
축각 회전합니다.

//축각 회전

transform.Rotate(axis, angle); transform.rotation *= Quaternion.AngleAxis(angle, axis);

월드좌표계의 기준 위치와 축 기준으로 일정 각도 회전합니다.
public void RotateAround (Vector3 point, Vector3 axis, float angle);

Transforms의 로컬좌표계 기준 direction을 월드좌표계로 변환하여 반환합니다.
transform의 scale, position에 영향을 받지 않습니다. 
Vector3가 방향이 아닌 위치를 나타내는 경우 TransformPoint 를 사용하세요.  
public Vector3 TransformDirection (Vector3 direction);

//오브젝트기준 로컬위치에 대한 방향벡터를 구하고 싶은 경우 transform.forward * x + transform.up * y + transform.right * z //간단하게 함수사용 transform.TransformDirection(x,y,z);

Transforms의 로컬좌표계 기준 position을 월드좌표계로 변환하여 반환합니다.
public Vector3 TransformPoint (Vector3 position);
transform의 scale 영향을 받습니다.
반환된 position은 transform의 자식의 localPosition이 매개변수와 같을 때 동일합니다. (rotation, scale은 다름)

Transforms의 로컬좌표계 기준 vector를 월드좌표계로 변환하여 반환합니다.
public Vector3 TransformVector (Vector3 vector);
transform의 position에는 영향받지 않고, scale에 영향받습니다.

Transforms a direction from world space to local space. The opposite of Transform.TransformDirection.

Transforms position from world space to local space.

Transforms a vector from world space to local space. The opposite of Transform.TransformVector.









'Unity > Manual' 카테고리의 다른 글

Quaternion  (0) 2018.11.22
Vector3  (0) 2018.11.22
캐시 서버(Cache Server)  (0) 2018.11.21
스트리밍 에셋(Assets)  (0) 2018.11.21
다중 씬 편집(Multi Scene Editing)  (0) 2018.11.21

+ Recent posts