ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 24년 6월 12 TIL
    공부 기록 2024. 6. 12. 23:50

    Enable에 대해서

    Enable은 특정 컴포넌트나 기능을 활성화하거나 비활성화하는 데 사용 된다고 한다. 유니티는 게임 및 인터랙티브 콘텐츠 개발에 널리 사용되는 강력한 게임 엔진으로, 다양한 스크립팅 API를 통해 오브젝트와 컴포넌트를 제어할 수 있다고 한다.

    사전설명..

     

    오늘 특강을 보면서 생각이 든 게 있다. 

     

    Player의 컨트롤을 구현 할 때 인벤토리나 메뉴버튼을 열었을 때 특정 기능들이 실행이 되지 않았으면 했던 게 있었는데 야매식으로만 했었다. 그러니까 화면 회전이 안 되게 하고 싶었는데 이것을 할 때 야매식으로 했었는데 이 Enable이란 거를 사용 하면 그 기능 자체를 가방 켰을 때 꺼버리게 해서 구현 하는 방법도 있다라는 것을 알았다. 

     

    그 외에도 Enable이 자주 나와서 자세히 알면 좋을 것 같다. 

     

    void Start()

    {

    this.enabled = false;

    }

     

    //////////////////////////////

     

    void Update()

    {

     if (Input.GetKeyDown(KeyCode.Space))

     {

        this.enabled = true;

     }

    }

    (gpt 예시 코드)

     

    사용법은 이렇게 되는데 Start 함수를 보면 시작 할 때 이 컴포넌트(스크립트)가 비활성화가 되게 하고 다른 update가 들어있는 오브젝트에 스페이스바가 눌리면 다시 컴포넌트가 활성화가 되어서 이 스크립트의 기능을 사용 할 수 있게 되는 형식인 것이다.

     

    이것을 아주 심화적으로 사용하면 되게 편리하고 좋게 코드를 구성 할 수 있다라고 해야 하나 특강에서 InputSystem과 연계해서 코드를 작성 했는데 지금은 다시보기가 다시 올라오지 않아서 다시 봐야 하지만 굉장히 좋은 방법으로 각 컴포넌트들이 활성화 비활성화가 되게 했다. 

     

    어떤 키가 눌리면 다른 기능은 꺼지고, 누른 게 켜지고 이 Enable을 잘 활용 하면 매우 편리하게 작업 할 수 있을 것 같다.

     

     

    유니티의 컴포넌트 시스템은 각각의 컴포넌트가 개별적으로 동작하도록 설계되어 있는데, 컴포넌트의 enabled 속성을 통해 특정 기능을 활성화하거나 비활성화할 수 있다고 한다. 예를 들어, MonoBehaviour를 상속받는 스크립트의 경우 enabled 속성을 false로 설정하면 Update, FixedUpdate와 같은 주기적 메서드가 호출되지 않는다.

     

     

    사용해야 하는 이유

    필요하지 않은 기능이나 컴포넌트를 비활성화하여 성능을 최적화할 수 있다.

    게임 오브젝트의 상태에 따라 특정 기능을 활성화하거나 비활성화하여 더 나은 게임 로직을 구현할 수 있다고 한다.

    조건에 따라 컴포넌트를 동적으로 제어할 수 있어 더 유연한 개발이 가능하다고 한다.

     

    그러니까 사용법은 여러개. 이러한 사용이유에 대해서 많이 알아야 할 것이다. 성능 좋은 게임을 만드려면,

     

     

    Gpt가 알려주는 사용하면 좋은 상황

    • 게임 시작 시 특정 기능을 비활성화: 예를 들어, 플레이어가 특정 레벨에 도달하기 전까지는 특정 기능을 비활성화할 수 있습니다.
    • UI 요소 제어: UI 요소를 필요에 따라 활성화하거나 비활성화하여 사용자 경험을 개선할 수 있습니다.
    • 디버깅 및 테스트: 특정 컴포넌트를 일시적으로 비활성화하여 디버깅 및 테스트를 쉽게 할 수 있습니다.

    이러한 방법으로 유니티에서 enabled 속성을 활용하여 게임 오브젝트와 컴포넌트를 유연하게 제어할 수 있습니다.

     

    렌더러 컴포넌트 제어. 그러니까 특정키를 눌리면 보이게 하는 것. 

    예를 들면 총게임에서 tab키 누르면 맵 나오게 하는 것? 아니면 야간투시경 같은 거 낀 효과? 등등도 할 수 있다.

     

    충돌체의 활성화/비활성화 

    어떠한 상태가 되면 충돌체를 무시하는 효과를 적용 할 때 유용!

     

    예시: 애니메이션 제어

    특정 상황일 때 애니메이션도 제어 가능

     

    특정 범위 내에서 기능 활성화

    컬라이더를 적용 하여 닿으면 기능들을 활성화, 비활성화 등을 해서 유용하게 사용 가능.

     

    예시: 버튼 클릭으로 UI 활성화/비활성화

     

    아무튼 이 Enable 기능은 개발을 할 때 매우 강력한 기능이 된다고 한다는데 맞는 것 같다. 

    어느정도 하다보니 잘만 사용하면 매우 편리하게 기능들을 사용했다 안했다 할 수 있을 것 같다. 

     

    오늘 하나 배웠으니 앞으로 코드 작성 할 때 떠올리면 된다.

     

     

    ===========

    벌써 심화주차인데 이거 끝나면 최종이다.. 튜터님이 날개를 달았어야 한다고 하는데 아직 안 꺽였다.

    열심히 해보자.

    '공부 기록' 카테고리의 다른 글

    24년 6월 14일 TIL  (0) 2024.06.14
    24년 6월 13일 TIL  (0) 2024.06.13
    24년 6월 11일 TIL  (0) 2024.06.11
    24년 6월 10일 TIL  (0) 2024.06.10
    24년 6월 9일  (0) 2024.06.09
Designed by Tistory.