카테고리 없음

25.02.28(금) - TIL 30일차 Unity 입문

rxo2 2025. 2. 28. 21:10

LineRenderer 라인렌더러(ex쿠키런) // 처음보았던 기능

public class LineRendererExample : MonoBehaviour
{
    private LineRenderer lineRenderer; // LineRenderer 컴포넌트를 저장할 변수

    void Start()
    {
        // 현재 게임 오브젝트에 LineRenderer 컴포넌트 추가
        lineRenderer = gameObject.AddComponent<LineRenderer>();

        // 선의 두께 설정
        lineRenderer.startWidth = 0.1f; // 시작 지점에서의 선의 두께
        lineRenderer.endWidth = 0.1f;   // 끝 지점에서의 선의 두께

        // 점 개수 설정 (두 개의 점을 잇는 선을 만들기 위해 2개)
        lineRenderer.positionCount = 2;

        // 선의 색상 설정
        lineRenderer.material = new Material(Shader.Find("Sprites/Default")); // 기본적인 선을 위한 쉐이더 적용
        lineRenderer.startColor = Color.red; // 시작 색상 (빨강)
        lineRenderer.endColor = Color.blue;  // 끝 색상 (파랑)

        // 선의 위치 설정
        lineRenderer.SetPosition(0, new Vector3(-2, 0, 0)); // 첫 번째 점 위치
        lineRenderer.SetPosition(1, new Vector3(2, 0, 0));  // 두 번째 점 위치
    }
}

 

 


델리게이트 delegate

public class Button
{
    public delegate void ClickAction(); // 클릭할 때 실행될 델리게이트 선언
    public event ClickAction OnClick;  // 이벤트로 선언 (델리게이트 기반)

    public void Click()
    {
        if (OnClick != null)
        {
            OnClick();  // 등록된 모든 메서드를 실행
        }
    }
}

class Program
{
    static void Main()
    {
        Button button = new Button();

        // 버튼 클릭 시 실행할 동작 등록
        button.OnClick += SayHello;
        button.OnClick += SayBye;

        // 버튼 클릭 (등록된 모든 메서드 실행됨)
        button.Click();
    }

    static void SayHello()
    {
        Console.WriteLine("안녕하세요!");
    }

    static void SayBye()
    {
        Console.WriteLine("안녕히 가세요!");
    }
}

 

 

델리게이트는 메서드를 저장하고 실행하는 포인터 역할

+= 연산자로 여러 개의 메서드를 등록 가능 (멀티캐스트 델리게이트)

이벤트 시스템(UI 버튼, 팝업 등)에서 많이 사용

하나의 팝업창, 하나의 공간에서 다양한 메세지나 행동을 부여하기 좋음.

 

델리게이트는 앞으로 더 연구 필요