본문 바로가기

Unity/Unity 스파르타

16주차 - 인게임용 커스텀 에디터(타일),버튼 색 스크립트로 통제(ColorBlock)

728x90

1.  커맨드 패턴으로 만든 그리기 도구

2.버튼 색 스크립트로 통제하기

1.  커맨드 패턴으로 만든 그리기 도구

이전에 만든 클래스 다이어그램을 바탕으로 기존에 만들어 놓은 맵 에디터에 적절하게 녹여보기.

커스텀 맵에 사용될 오브젝트들과 타일들의 배치를 맡고있는 placementSystem 에서 클라이언트를 관리하고, 이 클라이언트에게 명령을 내리면 실질적으로 명령을 수행하는 invoker가 명령을 스택에 쌓고 커맨드를 호출합니다.

커맨드 인터페이스에는 실행과 되돌리기를 정의해 놨기 때문에 Invoker에서 스택에 쌓아놓은 ICommand를  하나씩 꺼내 Undo() 함수를 실행 하게되면 손쉽게 이전에 한 작업물로 돌아갈 수 있습니다

public interface ICommand
{
   void Execute();
   void Undo();
}
public class Invoker 
{
   ....
   
    public void Undo()
    {
        if(commandStack.Count > 0)
        {
            ICommand command = commandStack.Pop();
            command.Undo();
        }

    }
}

 

 

2.버튼 색 스크립트로 통제하기

 

버튼 색을 바꿀땐 ColorBlock 을 사용

Button button;
ColorBlock colorBlock = button.colors;
colorBlock.normalColor = Color.White;
button.colors = colorBlock;

 

일반적으로 RGB 색상은 0~255 범위를 사용합니다.

하지만 Unity, C# (WinForms), C# (WPF) 등 일부 프로그래밍 환경에서는 0~1 범위를 사용합니다

이러한 환경에서 RGB 색상을 지정할 때 0~1 범위에 맞춰 값을 조정해야 합니다.

색상 값을 255로 나누어 0~1 범위로 변환합니다.

예를 들어, 빨간색 (255, 0, 0)은 (1, 0, 0)으로 변환해야 합니다.

728x90