Transform
오브젝트에 무조건 가지고 있음(없앨 수 없음)
오브젝트의 위치 회전 크기에 접근해서 조작할 수 있음
transform 컴포넌트로 변환 정보를 타나내는 행렬도 있음(transfrom matrix)
이동하기
this.transform.position += new Vector3(0.01f, 0.0f, 0.0f);
void Update()
{
this.transform.position += new Vector3(1.0f*Time.deltaTime, 0.0f, 0.0f);
}
Vector3 direct = new Vector3(1.0f, 1.0f, 0.0f).normalized; //방향 정보를 유지하기위해서 길이를 일정하게
transform.Translate(direct * 10.0f * Time.deltaTime);
targetObj = GameObject.Find("Target");
direction = (targetObj.transform.position - this.transform.position).normalized ;
//타켓방향의 dirctiona만듬
targetObj = GameObject.Find("Target");
transform.Translate(direct * 10.0f * Time.deltaTime);
//quarterion : 잘모름 이해하기 힘듬
this.transform.rotation = Quaternion.Euler(30.0f, 20.0f, 20.0f);
//오일러각을 쿼터니언으로 변경
rota += speed * Time.deltaTime;
this.transform.rotation=Quaternion.Euler(0.0f,rota, 0.0f);
this.transform.rotation = Quaternion.AngleAxis(rota, Vector3.up); //월드좌표를 기준으로 환산함 (Space.World)
this.transform.RotateAround(targetObj.transform.position, Vector3.up, speed * Time.deltaTime); //around 타겟을 기준으로 회전
값 2개 사이에 위치한 값을 추정
값이 변화할 때 (빛이 변하거나 물체가 이동하거나) 사용
this.transform.rotation=Quaternion.Lerp(this.transform.rotation,Quaternion.LookRotation(dir),speed * Time.deltaTime);
//두 값 사이의 선형 보간
//움직임을 부드럽게 하기위해 Lerp를 사용
사용자 입력에 따라 해당 축의 부드럽게 변하는 값을 반환시켜줌(보간 이용)
float value=Input.GetAxis("축 이름 (input manager로 설정)"); value는 보통 -1.0~1.0사이
lossyScale
read only(읽기 전용)
게임 전역 크기를 나타냄
localScale의 부모 object의 스케일도 고려해 부모 오브젝트 스케일 변환 고려
Transform.lossyScale
localScale
오브젝트 전역의 로컬 스케일 조정
부모 스케일 변환 고려하지 않음
벡터(Vector3)형태로 표현
this.transform.SetParent(null);
this.transform.localScale = new Vector3(4.0f, 4.0f, 4.0f); //변경가능한 것은 localScale만 가능하다
// this.transform.SetParent(_parent);
Debug.Log("lossyScale = " + this.name + " " + this.transform.lossyScale); // 절대적인 크기 (read only)
Debug.Log("localScale = " + this.name + " " + this.transform.localScale); // 상대적인 크기
오브젝트를 생성해 재사용하기 쉽도록 하기위해 오브젝트의 모양,동작,속성을 정의한 템플릿
필요할 때마다 씬에 인스턴스로 생성해 사용,배치할 수 있음
일관성있는 오브젝트 관리에 필요
힘 중력 충돌 등의 물리 작용에 영향을 받을 수 있는 물리 시뮬레이션 컴포넌트
물체에 힘을 가하는 메서드, 힘을 가하면 움직임이 가능
중력에 영향 받을지 여부를 결정 boolean타입
public Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
rb.useGravity = false;
rb.AddForce(Vector3.forward * 10f, ForceMode.Force);
}