Unity 이론 (partial, Detach, SetParent, Avatar Mask, FK, IK, Override, Region, Collider)

로젠·2024년 5월 2일
0

게임 프로그래밍

목록 보기
32/49
post-thumbnail

Animation Tweening

A에서 B로 전환할 때 A에서 끊기고 바로 B로 전환하는 것이 아닌 A에서 애니메이션이 B로 전환될 때 정해진 시간 동안 A는 서서히 줄고 B는 점점 늘어 B의 비율이 완전히 1이 되면 B로 전환된다. 이를 리니어 인터폴레이션으로 계산할 수 있다.

partial

다른 스크립트에서 같은 이름으로 사용하면 두 스크립트 파일이 합쳐져서 실행된다. 스크립트가 너무 길 때 나누기 위해서 사용한다.

public partial class Player : MonoBehaviour
{
}
public partial class Player
{
} 

Detach

Detach는 때는 것으로 게임 오브젝트에 붙어있는 부분을 땔 수 있다. 이의 반대는 Attach로 붙여주는 것을 의미한다. 게임 오브젝트에서 때고 싶은 게 있을 때 부모를 이용하여 땔 수 있다.

swordDestination.transform.parent.DetachChildren();

SetParent

호출한 부모의 하위 오브젝트에 원하는 오브젝트를 생성해 줄 때 사용한다. false를 쓰면 월드 간격을 유지하지 않을 때 사용한다.

swordDestination.transform.SetParent(handTransform, false); 

Avatar Mask

Avatar Mask는 어디를 움직이고 어디를 안 움직일지 선택하여 묶어주는 것을 말한다.

FK

부모의 월드 좌표에 자신의 로컬 좌표를 곱해서 자신의 월드로 만드는 것이다. 화면에 출력되는 것은 부모의 월드에 애니메이션 변화량과 자신의 로컬을 곱하여 나온 자신의 월드를 말한다. 부모에서부터 내려오는 것을 Forward Kinemetics라고 한다.

IK

FK와 다르게 끝에서부터 역으로 올라와 구하는 것으로 역운동학(Inverse Kinemetics)이라고 한다.

Override

Override는 밑에 있는 것이 위에 있는 것을 가리고 Additive는 위에 Layer와 아래 Layer가 섞여 출력하는 것을 말한다.

Region

원하는 부분을 구역 설정하고 접는 것을 말한다. Ctrl+L+M은 모두 접는 것이고 Ctrl+M+M은 해당 구역을 접는 것 Ctrl+M+O는 함수 부분을 접는 것을 말한다.

#region Drawing
#endregion

Collider

Collider에서 Is Trigger을 실행하지 않으면 물리 연산을 수행한다. 우리가 검을 뽑아서 공격을 하는 모션을 만들 때 해당 검을 뽑을 때 플레이어와 충돌이 일어날 수 있다. 이때 root를 이용하여 상위 게임 오브젝트와 부딪쳐도 충돌이 일어나지 않도록 한다. 콜라이더를 선언할 때는 어떤 콜라이더인지 구분하지 않아도 된다. 검으로 휘두를 때만 트리거를 발생시키고 싶으면 검을 휘두르지 않을 때 콜라이더를 비활성화 시킨다.

private void OnTriggerEnter(Collider other)
{
	if(transform.root.gameObject == other.gameObject)
    	return;
    print(other.gameObject.name);
}

0개의 댓글