해당 에셋의 일부 소스입니다
Home Designer 2023 - Realtime Interior Designer | 레벨 디자인 | Unity Asset Store
Get the Home Designer 2023 - Realtime Interior Designer package from exoa and speed up your game development process. Find this & other 레벨 디자인 options on the Unity Asset Store.
assetstore.unity.com
유료 에셋이라 코드내용을 가려야 할 것 같다.....
// Class InfoPopup
public static UnityEvent OnClickMove = new UnityEvent();
public static UnityEvent OnClickDelete = new UnityEvent();
override protected void Awake()
{
Instance = this;
thumb = contentGo.GetComponentInChildren<RawImage>();
text = contentGo.GetComponentInChildren<TMP_Text>();
trashBtn?.onClick.AddListener(() =>
{
OnClickDelete.Invoke();
Hide();
});
rotateBtn?.onClick.AddListener(() =>
{
OnClickDelete.Invoke();
Hide();
});
moveBtn?.onClick.AddListener(() =>
{
OnClickMove.Invoke();
Hide();
});
variantsBtn?.onClick.AddListener(() =>
{
MaterialPopup.Instance.ShowMode(MaterialPopupUI.Mode.Module, CurrentTarget.gameObject);
Hide();
});
base.Awake();
}
UnityEvent는 Unity에서 이벤트를 구현하기 위한 클래스이고,
OnClickMove는 이벤트의 인스턴스로, UI상의 버튼 클릭과 같은 상황에서 호출할 함수들을 등록할 수 있도록 한다
이 코드에서는 클릭 이벤트가 발생할 때 호출될 함수들을 OnClickMove에 등록하고 있다.
도대체가 OnclickDelete와 OnClickMove는 뭐가 어떻게 작동되고 있는걸까, 너무 궁금햇다.
열심히 Hierarchy에서 뒤적거린 결과 메인으로 작동되는 소스코드에서 해당 이벤트를 정의해주고 있었다
InfoPopup.OnClickDelete.AddListener(DeleteSelectedObject);
InfoPopup.OnClickMove.AddListener(OnClickMove);
private void DeleteSelectedObject()
{
코드 내용
}
/// <summary>
/// Clicking the "move" button on the popup
/// will recreate a ghost object that is editable
/// </summary>
private void OnClickMove()
{
코드 내용
}
그니까
InfoPopup 에 선언된 이벤트(OnClickDelete)에 AddListner()로 이벤트에 사용될 함수를 등록해주었고,
Awake() 함수에서 프로그램이 실행 되었을 때, UI상의 버튼 클릭 시 발생할 이벤트를 등록해주었다.
RayCastHit 의 구조
barycentricCoordinate | 삼각형에서의 충돌 지점의 바리켄트릭 좌표입니다. 바리켄트릭 좌표는 삼각형 내의 점을 나타내는 좌표 시스템입니다. |
collider | 충돌한 오브젝트의 콜라이더입니다. |
distance | 레이의 시작점에서 충돌 지점까지의 거리입니다 |
lightmapCoord | 충돌 지점에서의 라이트맵 좌표입니다. |
normal | 충돌 지점에서의 표면의 법선 벡터입니다. |
point | 충돌한 지점의 월드 좌표입니다. |
rigidbody | 충돌한 콜라이더가 속한 리지드바디입니다. 콜라이더가 리지드바디에 속해있지 않으면 null입니다. |
textureCoord | 충돌 지점에서의 텍스처 좌표입니다. |
textureCoord2 | 충돌 지점에서의 보조 텍스처 좌표입니다. |
transform | 충돌한 콜라이더나 리지드바디의 트랜스폼입니다. |
triangleIndex | 충돌한 삼각형의 인덱스입니다. |
'Unity' 카테고리의 다른 글
[Unity] SerializeField ? 직렬화 ? (0) | 2024.01.22 |
---|---|
[Unity C#] Vector3 (0) | 2024.01.22 |
2024-01-10 (0) | 2024.01.10 |
2024-01-04// 옵셔널 체이닝, Rect Transform, Bounds (0) | 2024.01.04 |
Unity2D) 기본캐릭터 이동조작 (0) | 2022.09.05 |