씬 재로딩시 crewmate 리스폰 추가 작업 중
This commit is contained in:
parent
2a2f66f1e3
commit
397d0fe410
@ -93,6 +93,8 @@ namespace BlueWaterProject
|
||||
[SerializeField] protected bool isAttacking;
|
||||
|
||||
// 일반 변수
|
||||
public int CrewmatePrefabIndex { get; set; } = -1;
|
||||
|
||||
protected Vector2 movementInput;
|
||||
protected bool usedNormalAttackCoroutine;
|
||||
protected WaitForSeconds waitAtkCooldown;
|
||||
|
12
BlueWater/Assets/02.Scripts/Data/CrewmateDataSo.cs
Normal file
12
BlueWater/Assets/02.Scripts/Data/CrewmateDataSo.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
// ReSharper disable once CheckNamespace
|
||||
namespace BlueWaterProject
|
||||
{
|
||||
[CreateAssetMenu(fileName = "CrewmateData", menuName = "ScriptableObjects/CrewmateData", order = 1)]
|
||||
public class CrewmateDataSo : ScriptableObject
|
||||
{
|
||||
public List<Crewmate> crewmateList;
|
||||
}
|
||||
}
|
11
BlueWater/Assets/02.Scripts/Data/CrewmateDataSo.cs.meta
Normal file
11
BlueWater/Assets/02.Scripts/Data/CrewmateDataSo.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c04e61fd913bab44a834a1586e2ada3c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
15
BlueWater/Assets/02.Scripts/Data/So/CrewmateData.asset
Normal file
15
BlueWater/Assets/02.Scripts/Data/So/CrewmateData.asset
Normal file
@ -0,0 +1,15 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c04e61fd913bab44a834a1586e2ada3c, type: 3}
|
||||
m_Name: CrewmateData
|
||||
m_EditorClassIdentifier:
|
||||
crewmateList: []
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1804f9de21fdf15448bb3a67d7b1c7c8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
@ -18,7 +18,7 @@ namespace BlueWaterProject
|
||||
|
||||
[Title("Crewmate 생성")]
|
||||
[InfoBox("$CrewmateIndexInfoMessage")]
|
||||
[SerializeField] private int crewmateIndex;
|
||||
[SerializeField] private int crewmatePrefabIndex;
|
||||
|
||||
private Collider[] colliders = new Collider[MAX_COLLIDER];
|
||||
|
||||
@ -102,13 +102,13 @@ namespace BlueWaterProject
|
||||
GameManager.Inst.SetCurrentInIslandPlayer(inIslandPlayer);
|
||||
}
|
||||
|
||||
[DisableIf("@crewmateIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmateIndex < 0")]
|
||||
[DisableIf("@crewmatePrefabIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmatePrefabIndex < 0")]
|
||||
[Button("Crewmate 추가")]
|
||||
private void AddCrewmate()
|
||||
public void AddCrewmate()
|
||||
{
|
||||
if (!GameManager.Inst.CurrentInIslandPlayer.GameObject) return;
|
||||
|
||||
if (crewmateIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmateIndex < 0)
|
||||
if (crewmatePrefabIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmatePrefabIndex < 0)
|
||||
{
|
||||
print("존재하지 않는 인덱스입니다.");
|
||||
return;
|
||||
@ -124,8 +124,9 @@ namespace BlueWaterProject
|
||||
|
||||
if (size != 0) continue;
|
||||
|
||||
var crewmate = Instantiate(GameManager.Inst.CrewmatePrefabList[crewmateIndex], spawnPos,
|
||||
GameManager.Inst.CrewmatePrefabList[crewmateIndex].transform.rotation, spawnLocation);
|
||||
var crewmate = Instantiate(GameManager.Inst.CrewmatePrefabList[crewmatePrefabIndex], spawnPos,
|
||||
GameManager.Inst.CrewmatePrefabList[crewmatePrefabIndex].transform.rotation, spawnLocation);
|
||||
crewmate.CrewmatePrefabIndex = crewmatePrefabIndex;
|
||||
crewmate.gameObject.SetActive(true);
|
||||
|
||||
GameManager.Inst.CurrentCrewmateList.Add(crewmate);
|
||||
@ -134,5 +135,7 @@ namespace BlueWaterProject
|
||||
|
||||
print("소환할 수 있는 자리가 없습니다.");
|
||||
}
|
||||
|
||||
public void SetCrewmatePrefabIndex(int value) => crewmatePrefabIndex = value;
|
||||
}
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.SceneManagement;
|
||||
@ -7,11 +8,39 @@ namespace BlueWaterProject
|
||||
{
|
||||
public class RestartPopupUi : MonoBehaviour
|
||||
{
|
||||
private List<Crewmate> currentCrewmateList;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
// 씬이 로드될 때마다 OnSceneLoaded 메서드를 호출합니다.
|
||||
SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
// 이 오브젝트가 비활성화될 때 이벤트 핸들러를 제거합니다.
|
||||
SceneManager.sceneLoaded -= OnSceneLoaded;
|
||||
}
|
||||
|
||||
private void OnInteraction(InputValue value)
|
||||
{
|
||||
currentCrewmateList = GameManager.Inst.CurrentCrewmateList;
|
||||
|
||||
var currentSceneIndex = SceneManager.GetActiveScene().buildIndex;
|
||||
|
||||
SceneManager.LoadScene(currentSceneIndex);
|
||||
}
|
||||
|
||||
private void OnSceneLoaded(Scene scene, LoadSceneMode mode)
|
||||
{
|
||||
// 로딩 이후에 실행되어야 하는 코드를 여기에 작성합니다.
|
||||
var spawnController = FindAnyObjectByType<SpawnController>();
|
||||
|
||||
foreach (var crewmate in currentCrewmateList)
|
||||
{
|
||||
spawnController.SetCrewmatePrefabIndex(crewmate.CrewmatePrefabIndex);
|
||||
spawnController.AddCrewmate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user