Practice_Unity/Assets/Scripts/Scenes/BaseScene.cs
Seonkyu.kim 488c0858ad 작업
1. UI 버튼 작업 했음
2. 칼, 방패 따로 붙이는 작업 헀음
3. 공격 모션에 이제 버튼 연동함

Todo
1. 공격시 화면 이상하게 흔들리는거 수정할 차례
2. 히트 박스 해서 몬스터 공격하는거 연동하기
2025-09-29 17:59:40 +09:00

73 lines
2.2 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;
private void Awake()
{
Init();
}
protected virtual void Init()
{
Object obj = FindFirstObjectByType<EventSystem>();
if (obj == null)
Manager.Resource.Instantiate("Prefabs/UI/EventSystem").name = "@EventSystem";
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();
}