Unity Skills

정제로·2023년 9월 19일
0

Unity

목록 보기
14/19

[Range()]

유니티는 기본적으로 인스펙터창에서 변수들을 컨트롤 할 수 있게 되어있다.
하지만 일반적으로, public float speed처럼 사용했을때는,

이런식으로 숫자를 직접 설정할수 있게 된다.
하지만 일정 범위내에서만 값을 조정하고 싶다면 Range어트리뷰트를 쓰면 된다.

코드를 다음과 같이 바꿔주고 [Range(0, 12)] [SerializeField] private float speed;

인스펙터창을 보면
이렇게 바뀐다.

헤더는 인스펙터창에 제목을 만들고 싶을대 사용한다.
위의 예제를 보면, NewBehaviourScript에는 script와 speed항목만 존재한다.
하지만 저게 무슨 speed변수인지 자세하게 설명해주고 싶을때
[Header("PlayerMoveSpeed")]이런 코드를 추가해주고, 인스펙터를 보면

이렇게 제목이 생성되어 있는것을 볼 수 있다.

trailRenderer

트레일 렌더러는 충돌체가 이동하는 장면에서 충돌체가 이동하는 궤적을 만드는데 사용된다.


이런식으로 효과를 다양하게 줄 수 있다.
자세한건, 직접 사용해보며 익히는것이 좋겠다.

가장 기본이 되는 몇개만 살펴보자.

  1. Time : 얼마나 오래동안 trail을 유지할거냐
  2. Width : Trail을 시간에따라 어떻게 변화시킬거냐.. fadeout효과 가능
  3. Min Vertix Distance : Trail을 어느 구간마다 찍을거냐..
    값을 높이면, 곡선보단 직선형태가 되기 시작한다
  4. AutoDestruct : 일정시간동안 움직이지 않으면 TrailRenderer가진 오브젝트 파괴
  5. Emitting : Trail을 만드냐

GetComponentInChildren

보통 컴포넌트 참조를 할때 GetComponent<>를 사용한다
하지만 부모오브젝트에서 자식오브젝트의 컴포넌트를 찾고싶으면..?
find findWithTag GetComponentInChildren GetComponentsInChildren등 여러가지가 있지만, 오늘은 GetComponentInChildren을 위주로 살펴볼 예정이다.

Find

find계열 함수는 되도록이면 사용하지말자.
최적화부분에서 상당한 패널티가 있어, 현업에서는 사용하지 않는다고 한다.

GetComponentInChildren

다시 본론으로 돌아와서 GetComponentInChildren를 살펴보겠다

기본적으로 GetComponentInChildren를 사용하면 해당 코드를 가진 스크립트를 가진 오브젝트의 자식객체중 가장 첫번째로 존재하는 해당 컴포넌트를 반환해준다.

GetComponentsInChildren

GetComponentsInChildren는 자식오브젝트 전부의 해당 컴포넌트를 반환시킨다.
2~3개가 넘어갈수도 있다.
이때 반환값은 Array형태로 반환된다

profile
초보자입니다.. 잘못된 정보, 달게 받겠습니다..

0개의 댓글