안녕하세요

프로그램 과정에서 막혔던 문제들에 대한 해결책 정리


페이지 목록

2024년 12월 24일 화요일

[유니티][Unity][Copilot] 피깍이는 애니메이션 효과 재사용하는 방법

 인터페이스나 추상클래스를 통해 사용하는 방법도 있다고 하는데 아직까지는 어떤 식으로 적용해야 될지 정확하지가 않다.

 그래서 확인해 보니 static을 이용하여 공통 메소드를 관리하는 방법도 있다고 한다. 

 스크립트 분리와 모듈화라고 하는데 모듈화를 시켜 같은 동작하는 코드를 한 번만 사용하게 하는 것이다.

 이 과정에 대한 코드는 아래와 같다.

--공통 부분--(모듈화)

 public static class UIHelper

{

    public static void UpdateHealthUI(Slider healthSlider, Text healthText, float health, float maxHealth)

    {

        if (healthSlider != null)

        {

            healthSlider.value = health / maxHealth;

        }


        if (healthText != null)

        {

            healthText.text = "Health: " + health.ToString();

        }

    }

}

-- View에서 사용
public class PlayerView : MonoBehaviour
{
    public Slider healthSlider;
    public Text healthText;
    private float currentHealth = 100f;

    void Update()
    {
        // 매 프레임마다 UI 업데이트
        UIHelper.UpdateHealthUI(healthSlider, healthText, currentHealth, 100f);
    }
}

이런 식으로 사용하게 된다.
 static으로 만드는 장점은 다음과 같다.

1. 객체 생성 불필요

  • static 메서드는 클래스 자체의 메서드로, 특정 객체(instance)에 속하지 않습니다. 따라서 객체를 생성하지 않고도 직접 호출할 수 있습니다.

  • 예를 들어, 공통으로 사용되는 유틸리티 함수는 특정 객체에 종속되지 않으므로 static 메서드로 만들면 편리합니다.

2. 전역 접근 가능

  • static 메서드는 클래스의 인스턴스화 없이 클래스 이름을 통해 전역적으로 접근할 수 있습니다.

  • 공통 기능이나 유틸리티 메서드를 전역적으로 사용해야 할 때 유용합니다.

3. 성능 향상

  • 객체를 생성하지 않기 때문에 메모리와 성능 측면에서 이점이 있습니다.

  • 예를 들어, 단순한 연산이나 변환 작업을 수행하는 메서드는 객체를 생성하지 않고 호출할 수 있어 더 효율적입니다.

4. 상태 관리 불필요

  • static 메서드는 클래스의 인스턴스 상태와 무관합니다. 즉, 인스턴스 변수에 접근할 필요가 없는 경우 적합합니다.

  • 공통 기능을 수행하지만 특정 객체의 상태를 변경할 필요가 없는 경우 유용합니다.


**본 문은 Microsoft Copilot의 도움을 받아 제작되었습니다.

댓글 없음:

댓글 쓰기