1. 적 <-> 플레이어 공격해서 값 체력깎기 기능 추가 2. 적 죽으면(explore)시 정해진 양만큼의 경험치 큐브 생성 - but 아직 1과 연동해서 공격해서 피 깎아서 죽는건 아직 아님 3. 경험치 큐브 범위내에 있으면 당기기 기능 추가 4. 경험치 큐브 캐릭터 최근접 범위에 닿으면 흡수하기 기능 추가 5. 경험치 획득시 레벨업 기능 추가 6. UI 경험치 바 화면에 구현 7. UI 경험치 바 플레이어 정보의 경험치와 연계 Todo 1. UI 다른 요소들 죄다 UIManaer로 이동 2. 몬스터 공격해서 에너지 덩어리로 바꾸는 동작 추가 3. 레벨업시 레벨 화면 표기 4. 몬스터가 캐릭터에게 다가오는 동작 추가 5. 투사체 공격 기능 추가
80 lines
2.4 KiB
C#
80 lines
2.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.InputSystem;
|
|
using UnityEngine.UI;
|
|
using Object = UnityEngine.Object; // InputSystem 사용을 위해 추가
|
|
|
|
public abstract class BaseScene : MonoBehaviour
|
|
{
|
|
public Define.Scene _sceneType { get; protected set; } = Define.Scene.Uknown;
|
|
protected Canvas _canvas;
|
|
protected GameObject _object;
|
|
|
|
private void Awake()
|
|
{
|
|
Init();
|
|
}
|
|
|
|
protected virtual void Init()
|
|
{
|
|
Object obj = FindFirstObjectByType<EventSystem>();
|
|
if (obj == null)
|
|
Manager.Resource.Instantiate("Prefabs/UI/EventSystem").name = "@EventSystem";
|
|
|
|
GameObject objects = GameObject.Find("@Object");
|
|
if (objects == null)
|
|
{
|
|
_object = new GameObject("@Object");
|
|
}
|
|
|
|
GameObject canvas = GameObject.Find("@Canvas");
|
|
if (canvas == null)
|
|
{
|
|
GameObject newCanvas = new GameObject("@Canvas");
|
|
_canvas = newCanvas.AddComponent<Canvas>();
|
|
_canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
|
|
|
newCanvas.AddComponent<CanvasScaler>();
|
|
//Canvas Scaler 의 ui Scale Mode을 Scale With Screen Size로 설정
|
|
CanvasScaler canvasScaler = newCanvas.GetComponent<CanvasScaler>();
|
|
canvasScaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize;
|
|
canvasScaler.referenceResolution = new Vector2(1920, 1080);
|
|
canvasScaler.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight;
|
|
canvasScaler.matchWidthOrHeight = 0.5f; //0: Width,
|
|
|
|
newCanvas.AddComponent<GraphicRaycaster>();
|
|
}
|
|
else
|
|
{
|
|
_canvas = canvas.GetComponent<Canvas>();
|
|
}
|
|
|
|
//
|
|
// Manager.Input.InputAction -= Check;
|
|
// Manager.Input.InputAction += Check;
|
|
}
|
|
|
|
// private void Check(Define.InputEvent evt)
|
|
// {
|
|
// switch (evt)
|
|
// {
|
|
// case Define.InputEvent.Click:
|
|
// Debug.Log($"Clicked Position:"); //{Manager.Input.LastPointPosition}");
|
|
// break;
|
|
// default:
|
|
// Manager.Input.PointAction -= DebugLog;
|
|
// break;
|
|
// }
|
|
// }
|
|
|
|
// public void DebugLog(Vector2 vec)
|
|
// {
|
|
// Debug.Log(vec);
|
|
// }
|
|
|
|
public abstract void Clear();
|
|
|
|
}
|