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 버튼, 팝업 등)에서 많이 사용
하나의 팝업창, 하나의 공간에서 다양한 메세지나 행동을 부여하기 좋음.
델리게이트는 앞으로 더 연구 필요