공부/Unity

Slider, Model 크기 변경, Item

월러비 2025. 8. 26. 17:40

Canvas

  • Screen Space
    • Overlay : UI 요소가 화면에서 씬의 위에 렌더링 된다.
      • 스크린의 크기가 조절되거나 해상도가 변경되면 캔버스는 자동으로 크기를 변경한다.
    • Camera : 캔버스가 지정된 카메라 앞에 주어진 거리만큼 배치된다.
      • 카메라 설정이 UI 모양에 영향을 미친다.
      • 카메라가 원근감으로 설정되면 UI 요소는 원근감으로 렌더링되며, 원근감 왜곡의 정도는 카메라 시야각으로 제어할 수 있다.
      • 카메라 절두체가 변경되면 캔버스도 일치하도록 자동으로 크기가 변경된다.
    • World Space : 캔버스가 씬에 있는 다른 오브젝트처럼 동작하고 배치된다.
      • 캔버스의 크기는 Rect 트랜스폼을 사용하여 수동으로 설정하 수 있고, UI 요소는 3D 배치로 씬의 다른 오브젝트의 앞 뒤에 렌더링된다.
      • UI가 월드의 일부가 되도록 의도된 UI에 유용하다.
        • ex. 플레이어를 따라다니는 특이한 모양의 HP바
      • ‘서사적 인터페이스’ 라고도 부른다.

Slider

  • 사용자의 입력 또는 스크립트의 값에 따라 Fill의 영역이 변경되는 UI 오브젝트다.
  • Background : 배경
  • Fill Area : Fill Value에 따라서 바뀌는 이미지영역
  • Handle Slide Area : 사용자가 직접 클릭해서 이동시키는 입력 충돌영역
  • Slider의 Stretch를 맞출때는 Background, Fill Area, Fill 3개를 모두 동일하게 맞춰야한다.
  • Source Image ;
  • Image Type : Fill을 어떻게 채울지 설정하는 옵션
    • Simple : 이미지대로 좌우 크기를 줄이거나 키우는 방식이다.
    • Filled : Fill Method에 따라서 Fill의 영역을 바꾸는 방식이다.
    • Tiled : 고정된 크기의 Source Image를 반복적으로 채우는 방식이다.
    • Sliced : source Image를 Sprite Editor에 보이는 등분에 따라서 채우는 방식이다.
public Slider healthSlider;

healthSlider.gameObject.SetActive(true);
healthSlider.value = Health / MaxHealth;

Anchor

  • stretch : 상하좌우를 전부 맞추면 부모의 변경에 맞춰 자식도 자동으로 크기와 회전이 맞취지는 옵션이다.

Model

  • Scale Factor : 기존 모델 사이즈를 변형시키는 옵션이다.
    • Scale 1 1 1 이어도 사이즈가 변경되어서 1 1 1 을 기준으로 사용할 수 있게된다.
    • 크기를 변경할 일이 있다면 이렇게 변경해라

Item

  • Item 인터페이스를 만들고 아이템처럼 사용해야하는 클래스에 붙인다.
  • 아이템 타입을 지정하고 분기를 만들어 기능을 구별한다.
    • 하지만, 아이템과 종류가 많아진다면 이렇게 하면 안된다.
    • ItemData 클래스를 만들고 정리하여 각 아이템에 붙여서 사용해야한다.
switch (itemType)
{
    case Types.Ammo:
        {
            var shooter = go.GetComponent<PlayerShooter>();
            shooter?.gun?.AddAmmo(value);
        }
        break;
    case Types.Health:
        {
            var playerHealth = go.GetComponent<PlayerHealth>();
            playerHealth?.AddHealth(value);
        }
        break;
    case Types.Coin:
        Debug.Log("Coin");
        break;
}