2024/01/31 4

#2. Welcome to JavaScript

Variable (변수) const a = 1; let b = 2; var c = 3; // 재선언 var c = 5; // 재할당 b = 3; const: 재선언 X, 재할당 X let: 재선언 X, 재할당 O var(구버전): 재선언 O, 재할당 O * 따라서 재선언이 가능한 var는 사용하지 않는다 Object (객체) const player { name: "nico", points: 10, isMove: false sayHello: function() { } } 하나의 player에서 파생되는 여러 property 값을 묶어주기 위한 구조 * const로 선언하여도 player 내 오브젝트들의 값을 변경할 수 있다 * 함수명: 구현할 함수 내용의 형태로 객체가 가지는 함수를 만들어줄 수 있다 Fu..

Section 8. Scene - Scene Manager

Assets > Scripts > Utils > Define.cs에 씬과 관련된 열거체를 추가로 정의해준다 public enum Scene { Unknown, Login, Lobby, Game } 그리고 씬을 관리하기 위한 새로운 스크립트 Assets > Scripts > Scenes > BaseScene.cs를 생성해준다 public abstract class BaseScene : MonoBehaviour { public Define.Scene SceneType { get; protected set; } = Define.Scene.Unknown; void Awake() { Init() } protected virtual void Init() { Object obj = GameObject.FindObje..

Section 7. UI - 코드 정리

1. getOrAddComponent 함수를 extension method로 변경해준다 Assets > Scripts > Utils > Extension.cs public static class Extension { public static T GetOrAddComponent(this GameObject go) where T : UnityEngine.Component { return Util.GetOrAddComponent(go); } public static void AddUIEvent(this GameObject go, Action action, Define.UIEvent type = Define.UIEvent.Click) { UI_Base.AddUIEvent(go, action, type); } }..

Section 7. UI - 인벤토리 실습

인벤토리 패널 산하에 들어가는 Inven_Item 스크립트는 UI_Popup도, UI_Panel도 아니기 때문에 UI_Base를 상속받게 되는데, 그럼 팝업과 씬에서 만들어두었던 Init 함수를 사용하지 못하기 때문에 그 부분을 수정해준다 public abstract class UI_Base : MonoBehaviour { public abstract void Init(); } UI_Base 스크립트에 이렇게 추가해준다 이때 virtual로 선언한 것과 달리, abstract로 선언한 경우, 자식 클래스에서 반드시 재선언을 해주어야 사용할 수가 있다 그리고 Ui_Popup.cs, UI_Scene.cs에서 기존에 virtual Init으로 선언했던 함수를 override Init으로 변경해주면 된다