[Style] Interaction 용어 통일, 주석 추가

This commit is contained in:
HaeinLEE 2025-04-21 09:00:44 +09:00
parent faef0b4124
commit f1ca9d0252
16 changed files with 297 additions and 87 deletions

View File

@ -1,16 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DailyRoutineBed : DailyRoutine
{
public override ActionType RoutineEnter()
{
return ActionType.Sleep;
}
protected override void RoutineConfirm()
{
//숙면: 시간 계산, 8시간 이상시 체력 완충, 미만시 강제기상 체력 회복
}
}

View File

@ -1,11 +0,0 @@

using System;
using UnityEngine;
public abstract class DailyRoutine: MonoBehaviour
{
public abstract ActionType RoutineEnter();
protected abstract void RoutineConfirm();
}

View File

@ -5,22 +5,24 @@ using UnityEngine;
using UnityEngine.Serialization; using UnityEngine.Serialization;
[RequireComponent(typeof(Rigidbody))] [RequireComponent(typeof(Rigidbody))]
public class DailyRoutineController : MonoBehaviour public class InteractionController : MonoBehaviour
{ {
[SerializeField] PlayerStats playerStats; [SerializeField] PlayerStats playerStats;
[SerializeField] LayerMask interactionLayerMask; [SerializeField] LayerMask interactionLayerMask;
[Header("UI 연동")] [Header("UI 연동")]
[SerializeField] HousingCanvasManager housingCanvasManager; [SerializeField] HousingCanvasManager housingCanvasManager;
// 상호작용 가능한 사물 범위에 들어올 때
private void OnCollisionEnter(Collision other) private void OnCollisionEnter(Collision other)
{ {
if (interactionLayerMask == (interactionLayerMask | (1 << other.gameObject.layer))) if (interactionLayerMask == (interactionLayerMask | (1 << other.gameObject.layer)))
{ {
ActionType interactionType = other.gameObject.GetComponent<DailyRoutine>().RoutineEnter(); ActionType interactionType = other.gameObject.GetComponent<InteractionProp>().RoutineEnter();
PopActionOnScreen(interactionType); PopActionOnScreen(interactionType);
} }
} }
// 사물에서 벗어날 때 UI 정리
private void OnCollisionExit(Collision other) private void OnCollisionExit(Collision other)
{ {
if (interactionLayerMask == (interactionLayerMask | (1 << other.gameObject.layer))) if (interactionLayerMask == (interactionLayerMask | (1 << other.gameObject.layer)))
@ -28,6 +30,8 @@ public class DailyRoutineController : MonoBehaviour
housingCanvasManager.HideInteractionButton(); housingCanvasManager.HideInteractionButton();
} }
} }
// ActionType 별로 화면에 상호작용 내용 표시, 상호작용 버튼에 이벤트 작성
private void PopActionOnScreen(ActionType interactionType) private void PopActionOnScreen(ActionType interactionType)
{ {
switch (interactionType) switch (interactionType)
@ -38,6 +42,8 @@ public class DailyRoutineController : MonoBehaviour
if (playerStats.CanPerformByHealth(ActionType.Sleep)) if (playerStats.CanPerformByHealth(ActionType.Sleep))
{ {
playerStats.PerformAction(ActionType.Sleep); playerStats.PerformAction(ActionType.Sleep);
housingCanvasManager.HideInteractionButton();
//TODO: 화면 전환 효과와 UI 업데이트 작업
} }
else else
{ {
@ -52,11 +58,12 @@ public class DailyRoutineController : MonoBehaviour
if (playerStats.CanPerformByHealth(ActionType.Housework)) if (playerStats.CanPerformByHealth(ActionType.Housework))
{ {
playerStats.PerformAction(ActionType.Housework); playerStats.PerformAction(ActionType.Housework);
housingCanvasManager.HideInteractionButton();
//TODO: 집안일 후 랜덤 강화 효과 적용 //TODO: 집안일 후 랜덤 강화 효과 적용
} }
else else
{ {
housingCanvasManager.SetActionText("집안일 할 체력이 남아있지 않다.."); housingCanvasManager.SetActionText("힘들어서 못해..");
housingCanvasManager.SetDescriptionText(); housingCanvasManager.SetDescriptionText();
} }
}); });
@ -67,6 +74,7 @@ public class DailyRoutineController : MonoBehaviour
if (playerStats.CanPerformByHealth(ActionType.Dungeon)) if (playerStats.CanPerformByHealth(ActionType.Dungeon))
{ {
playerStats.PerformAction(ActionType.Dungeon); playerStats.PerformAction(ActionType.Dungeon);
housingCanvasManager.HideInteractionButton();
} }
else else
{ {
@ -81,7 +89,7 @@ public class DailyRoutineController : MonoBehaviour
if (playerStats.CanPerformByHealth(ActionType.Work)) if (playerStats.CanPerformByHealth(ActionType.Work))
{ {
playerStats.PerformAction(ActionType.Work); playerStats.PerformAction(ActionType.Work);
Debug.Log("출근"); housingCanvasManager.HideInteractionButton();
} }
else else
{ {

View File

@ -0,0 +1,8 @@

using System;
using UnityEngine;
public abstract class InteractionProp: MonoBehaviour
{
public abstract ActionType RoutineEnter();
}

View File

@ -0,0 +1,10 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InteractionPropBed : InteractionProp
{ public override ActionType RoutineEnter()
{
return ActionType.Sleep;
}
}

View File

@ -2,15 +2,10 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class DailyRoutineFridge : DailyRoutine public class InteractionPropFridge : InteractionProp
{ {
public override ActionType RoutineEnter() public override ActionType RoutineEnter()
{ {
return ActionType.Dungeon; return ActionType.Dungeon;
} }
protected override void RoutineConfirm()
{
// 던전입장 : 시간3, 체력3 소모 후 씬 전환
}
} }

View File

@ -2,15 +2,10 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class DailyRoutineSink : DailyRoutine public class InteractionPropSink : InteractionProp
{ {
public override ActionType RoutineEnter() public override ActionType RoutineEnter()
{ {
return ActionType.Housework; return ActionType.Housework;
} }
protected override void RoutineConfirm()
{
//식사: 1시간 소모 1체력 회복
}
} }

View File

@ -2,14 +2,10 @@ using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
public class DailyRoutineWork : DailyRoutine public class InteractionPropWork : InteractionProp
{ {
public override ActionType RoutineEnter() public override ActionType RoutineEnter()
{ {
return ActionType.Work; return ActionType.Work;
} }
protected override void RoutineConfirm()
{
}
} }

View File

@ -15,8 +15,7 @@ public class HousingCanvasManager : MonoBehaviour
void Awake() void Awake()
{ {
SetActionText(); InitTexts();
SetDescriptionText();
interactionButton.SetActive(false); interactionButton.SetActive(false);
} }
@ -31,6 +30,13 @@ public class HousingCanvasManager : MonoBehaviour
descriptionText.text = text; descriptionText.text = text;
} }
private void InitTexts()
{
SetActionText();
SetDescriptionText();
}
// 상호작용 가능한 사물에 가까이 갔을 때 화면에 텍스트, 버튼 표시
public void ShowInteractionButton(string actText, string descText,Action onInteractionButtonPressed) public void ShowInteractionButton(string actText, string descText,Action onInteractionButtonPressed)
{ {
SetActionText(actText); SetActionText(actText);

File diff suppressed because one or more lines are too long