OldBlueWater/BlueWater/Assets/02.Scripts/SpawnController.cs
NTG c63377124f 슬라임 및 로직 수정(상세내용 아래 참고)
수정 내역
1. 토끼 이미지, 크기 변경
2. 슬라임 이미지(색감), 크기 변경
3. 슬라임 그림자 이미지 변경
4. 슬라임 얼룩자국 이미지(색감) 변경
5. 토끼 슬라임 최대 4단계로 변경
6. 맵 이동 및 재시작 과정에서 전투플레이어 삭제 후 생성하는 로직으로 변경
7. 1단계 슬라임이 점프할 때, 카메라 흔들림 효과 강화
8. 슬라임 시작 또는 분열할 때, 0.5초 무적 기능 추가

버그 수정 내역
1. 일반 슬라임이 본체로 인식되는 버그 수정
2. 간헐적으로 슬라임 얼룩 자국이 남아있는 버그 수정
3. 마지막 보스를 스킬로 잡을 때, 전투플레이어 오류 수정
4. 대쉬 중에 디버프를 받는 버그 수정
2024-05-12 17:41:13 +09:00

148 lines
6.3 KiB
C#

// using System;
// using Cinemachine;
// using Sirenix.OdinInspector;
// using Unity.VisualScripting;
// using UnityEngine;
// using UnityEngine.InputSystem;
// using UnityEngine.SceneManagement;
// using Random = UnityEngine.Random;
//
// // ReSharper disable once CheckNamespace
// namespace BlueWaterProject
// {
// public class SpawnController : MonoBehaviour
// {
// [SerializeField] private float instantiationDistance = 3f;
// [SerializeField] private float checkRadius = 1f;
// [SerializeField] private LayerMask checkLayer;
// [SerializeField] private LayerMask groundLayer;
//
// [Title("Crewmate 생성")]
// [InfoBox("$CrewmateIndexInfoMessage")]
// [SerializeField] private int crewmatePrefabIndex;
//
// private Collider[] colliders = new Collider[MAX_COLLIDER];
//
// private GameObject spawnPositionObj;
// private CinemachineVirtualCamera cinemachineVirtualCamera;
//
// private Transform spawnLocation;
// private string CrewmateIndexInfoMessage => $"0 ~ {GameManager.Inst.CrewmatePrefabList.Count - 1} 숫자를 입력해주세요.";
//
// private const string PLAYER_NAME = "Player";
// private const string IN_ISLAND_PLAYER_NAME = "InIslandPlayer";
// private const int MAX_COLLIDER = 10;
//
// private void Start()
// {
// groundLayer = LayerMask.GetMask("Ground");
//
// spawnPositionObj = GameObject.Find("StageMap/SpawnPosition");
// if (spawnPositionObj == null)
// {
// print("StageMap 또는 SpawnPosition 오브젝트를 찾을 수 없습니다.");
// return;
// }
//
// cinemachineVirtualCamera = GameObject.Find("Virtual Camera")?.GetComponent<CinemachineVirtualCamera>();
// if (cinemachineVirtualCamera == null)
// {
// print("Virtual Camera 오브젝트를 찾을 수 없습니다.");
// return;
// }
//
// spawnLocation = GameObject.Find("Characters")?.transform;
// if (spawnLocation == null)
// {
// spawnLocation = new GameObject("Characters").transform;
// }
//
// var currentSceneName = SceneManager.GetActiveScene().name;
// if (currentSceneName != "02.Main")
// {
// SpawnInIslandPlayer(spawnPositionObj.transform.position, GameManager.Inst.InIslandPlayerPrefab.transform.rotation);
// }
// }
//
// private void SpawnInIslandPlayer(Vector3 spawnPos, Quaternion spawnRotation)
// {
// // // if (Physics.Raycast(spawnPos, Vector3.down, out var hit, 10f, groundLayer))
// // // {
// // // print(hit.point.y);
// // // spawnPos.y = hit.point.y;
// // // }
// //
// // var islandPlayer = Instantiate(GameManager.Inst.InIslandPlayerPrefab, spawnPos, spawnRotation, spawnLocation);
// // islandPlayer.name = IN_ISLAND_PLAYER_NAME;
// // islandPlayer.gameObject.SetActive(true);
// //
// // var playerInput = islandPlayer.GetComponent<PlayerInput>();
// // if (playerInput == null)
// // {
// // playerInput = islandPlayer.transform.AddComponent<PlayerInput>();
// // }
// //
// // var desiredActionMap = playerInput.actions.FindActionMap(PLAYER_NAME);
// // if (desiredActionMap == null)
// // {
// // print($"Action map named '{PLAYER_NAME}' not found in player actions!");
// // return;
// // }
// //
// // playerInput.defaultActionMap = PLAYER_NAME;
// //
// // // if (GameManager.Inst.ShipPlayer != null)
// // // {
// // // GameManager.Inst.ShipPlayer.GetComponent<PlayerInput>().enabled = false;
// // // }
// //
// // playerInput.enabled = true;
// //
// // var inIslandPlayer = islandPlayer.GetComponent<InIslandPlayer>();
// // if (inIslandPlayer == null)
// // {
// // inIslandPlayer = islandPlayer.AddComponent<InIslandPlayer>();
// // }
// //
// // InIslandCamera.Inst.SetTarget(islandPlayer.transform);
// //
// // GameManager.Inst.SetCurrentInIslandPlayer(inIslandPlayer);
// }
//
// [DisableIf("@crewmatePrefabIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmatePrefabIndex < 0")]
// [Button("Crewmate 추가")]
// public void AddCrewmate()
// {
// if (!GameManager.Inst.CurrentInIslandPlayer.GameObject) return;
//
// if (crewmatePrefabIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmatePrefabIndex < 0)
// {
// print("존재하지 않는 인덱스입니다.");
// return;
// }
//
// for (var i = 0; i < 50; i++)
// {
// var randomDirection = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)).normalized;
// var spawnPos = GameManager.Inst.CurrentInIslandPlayer.Transform.position + (randomDirection * instantiationDistance);
//
// Array.Clear(colliders, 0, MAX_COLLIDER);
// var size = Physics.OverlapSphereNonAlloc(spawnPos, checkRadius, colliders, checkLayer);
//
// if (size != 0) continue;
//
// 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);
// return;
// }
//
// print("소환할 수 있는 자리가 없습니다.");
// }
//
// public void SetCrewmatePrefabIndex(int value) => crewmatePrefabIndex = value;
// }
// }