현재 듣고있는곡
【Yuzuki Yukari feat. IA】 Dolls 【Vocaloid】
최근 찾아서 듣고있는 곡이다, 어딘가 묻혀있는 곡인데, 코드가 괜찮아서 추천한다
이제 대화창을 메인씬으로 끌고 와야되는데 방식이 조금 이상했던 것 같다
스크립트 내에서 대사를 적는건 비효율적이라는 이야기를 들었다
그래서 엑셀, json, txt등 여러가지를 확인해보고 있다
이하는 txt의 연습사항이다
void Start()
{
string currentText = txt.text.Trim(); // 마지막 줄바꿈 문자를 제거합니다.
string[] lines = currentText.Split('\n'); // 각 줄을 분리합니다.
rowSize = lines.Length;
colSize = lines[0].Split('\t').Length;
Sentence = new string[rowSize, colSize];
for (int i = 0; i < rowSize; i++)
{
string[] columns = lines[i].Split('\t');
for (int j = 0; j < colSize; j++)
{
Sentence[i, j] = columns[j];
Debug.Log(i + "," + j + "," + Sentence[i, j]);
}
}
for (int i = 0; i < rowSize; i++)
{
for (int j = 0; j < colSize; j++)
{
Debug.Log(i + "," + j + "," + Sentence[i, j]);
}
}
}
2by- 배열을 사용한 방법이다, 잘 써먹으면 효율적일 것 같다
일단 하쿠레이 신사로 가는 방법을 전글과 같이 카메라 전환법으로 만들어 보자
using UnityEngine;
using UnityEngine.SceneManagement;
public class goto_reimu : MonoBehaviour
{
// 버튼을 눌렀을 때 호출되는 함수
public void GoToReimuScene()
{
SceneManager.LoadScene("Reimu"); // "Reimu" 씬으로 이동
}
}
현재는 씬을 물리적으로 이동시키고 있다
이것을 카메라 전환으로 바꿔보자
if(isCameraActive == 1){
camera1.enabled = true;
camera2.enabled = false;
camera3.enabled = false;
camera4.enabled = false;
}
else if(isCameraActive == 2){
camera1.enabled = false;
camera2.enabled = true;
camera3.enabled = false;
camera4.enabled = false;
}
else if(isCameraActive == 3){
camera1.enabled = false;
camera2.enabled = false;
camera3.enabled = true;
camera4.enabled = false;
}
else if(isCameraActive == 4){
camera1.enabled = false;
camera2.enabled = false;
camera3.enabled = false;
camera4.enabled = true;
}
카메라 매니저를 또 추가해준다
if(player.ismove == true && C.isCameraActive == 1){
World_UI.SetActive(true);
Shop_UI.SetActive(false);
Fight_UI.SetActive(false);
Hakurei_UI.SetActive(false);
}
else if(player.ismove == false && C.isCameraActive == 2){
World_UI.SetActive(false);
Shop_UI.SetActive(true);
Fight_UI.SetActive(false);
Hakurei_UI.SetActive(false);
}
else if(player.ismove == false && C.isCameraActive == 3){
World_UI.SetActive(false);
Shop_UI.SetActive(false);
Fight_UI.SetActive(true);
Hakurei_UI.SetActive(false);
}
else if(player.ismove == false && C.isCameraActive == 4){
World_UI.SetActive(false);
Shop_UI.SetActive(false);
Fight_UI.SetActive(false);
Hakurei_UI.SetActive(true);
}
UI 매니저도 추가해준다
public GPSManager player;
public CameraSwitch C;
// 버튼을 눌렀을 때 호출되는 함수
public void GoTo()
{
player.ismove = false;
C.isCameraActive = 4;
}
버튼도 수정해준다
카메라를 추가후 연결한다
그후 대충 비슷하게 만든다
이제 여기서 txt를 쓸지 excel을 쓸지같은 여부를 결정해야 한다
txt를 사용하기로 결정했다
(너무 길어서 깃 주소로 대체)
간단히 말하면 txt파일을 가져와서 \t, \n으로 행, 열로 찢어주는 매커니즘의 스크립트이다
이렇게 하면 이후 [1][5]같이 2차원 배열에서 특정 장소를 지정하는 것으로 편하게 대화를 구현할 수 있으며, 이벤트 구현도 쉬워진다
'개발일지 > 게임개발' 카테고리의 다른 글
[유니티 게임 개발] 동방을 걷다 프로젝트 9 - 몬스터 스포너 추가 2024 05 24(AM 01:30) (0) | 2024.05.28 |
---|---|
[유니티 게임 개발] 동방을 걷다 프로젝트 8 - 시작 메뉴 구현 2024 05 23(AM 01:30) (0) | 2024.05.23 |
[유니티 게임 개발] 동방을 걷다 프로젝트 5 - 상점 기능 추가, 폰트 추가 2024 05 16(AM 01:00) (0) | 2024.05.16 |
[유니티 게임 개발] 동방을 걷다 프로젝트 4 - 2024 05 15(PM 01:30) 아이템 획득 연출, 카메라 전환, 상점 구현 (0) | 2024.05.15 |
[유니티 게임 개발] 동방을 걷다 프로젝트 3 - 2024 05 13(PM 04:00) 플레이어 애니메이션 추가 (0) | 2024.05.13 |