알고리즘 코드카타
유니티 스크립트 한글 깨짐 현상
해결방법
프로젝트 폴더에 .editorconfig 라는 파일을 하나 저장하면 된다.
root = true
[*]
charset = utf-8
-> .editorconfig 에 들어가야할 내용
Player Data
Title Scene에서 입력한 Player Data를 Main Scene으로 옮기는 작업을 하고 싶었다.
시도한 방법은 2가지이다.
1. DontDestroyOnLoad
2. ScriptableObject
2가지 방법을 시도하다가 막혀
마지막으로 Main Scene에 Title Scene을 합침으로 해결했다.
Title Scene에서 했던 일들을 Main Scene으로 옮겼다.
이렇게 하니 간단하게 해결되었지만 원하는 동작이 아니라 찜찜한 느낌..
나중에 ScriptableObject에 대해 자세히 알아봐야겠다.
개인과제
오늘 이름 입력 시스템과 캐릭터 선택 시스템을 만들었다.
오늘 작성한 CharacterCreateManager.cs 이다.
모든 함수는 button에 들어간다.
using Cinemachine;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEditor;
using UnityEditor.Animations;
using UnityEngine;
using UnityEngine.UI;
public class CharacterCreateManager : MonoBehaviour
{
[SerializeField] GameObject _characterCreateCanvas;
[SerializeField] GameObject _imageSelectCanvas;
[SerializeField] TextMeshProUGUI _playerNameInput;
[SerializeField] TextMeshProUGUI _playerName;
[SerializeField] Image _playerTempImage;
[SerializeField] GameObject _nicknameWarning;
[SerializeField] Sprite _penguinSprite;
[SerializeField] Sprite _jellySprite;
[SerializeField] RuntimeAnimatorController _penguinAnimController;
[SerializeField] RuntimeAnimatorController _jellyAnimController;
[SerializeField] GameObject _player;
private bool _isJellyCharacter;
public void CharacterSelectButton()
{
_imageSelectCanvas.SetActive(true);
}
public void EnterButton()
{
if (_playerNameInput.text.Length > 2 && _playerNameInput.text.Length < 12)
{
_playerName.text = _playerNameInput.text;
if (_isJellyCharacter)
{
// 나중에 함수로
_player.GetComponent<SpriteRenderer>().sprite = _jellySprite;
_player.GetComponent<Animator>().runtimeAnimatorController = _jellyAnimController;
}
else
{
_player.GetComponent<SpriteRenderer>().sprite = _penguinSprite;
_player.GetComponent<Animator>().runtimeAnimatorController = _penguinAnimController;
}
_characterCreateCanvas.SetActive(false);
}
else
_nicknameWarning.SetActive(true);
}
public void SelectPenguinCharacter()
{
_isJellyCharacter = false;
_playerTempImage.sprite = _penguinSprite;
_imageSelectCanvas.SetActive(false);
}
public void SelectJellyCharacter()
{
_isJellyCharacter = true;
_playerTempImage.sprite = _jellySprite;
_imageSelectCanvas.SetActive(false);
}
}
내일 해결해야하는 문제
Sprite 크기 문제
- 두 개의 캐릭터 Sprite 크기가 다름
펭귄 Sprite에 맞춰 Image 크기를 늘려놨더니 젤리 Sprite 크기가 제멋대로이다.
Image 객체를 두 개 만들어 SetActive를 사용하든 다른 방법을 사용하든 내일 손을 봐야겠다.
Nickname에 한글 지원도 되도록 수정
오늘 하루 회고
요즘 코드에 자신이 없다.
다른 방법으로 더 잘 짤 수 있을것 같은데 어떻게 해야할지 답답..
'내일배움캠프(Unity)' 카테고리의 다른 글
객체지향 프로그래밍 특강 정리, 몇가지 문법 - 내일배움캠프 게임개발(Unity) 23일차 231129 TIL (1) | 2023.11.29 |
---|---|
내일배움캠프 게임개발(Unity) 22일차 231128 TIL (2) | 2023.11.28 |
내일배움캠프 게임개발(Unity) 20일차 231124 TIL - Unity 게임개발입문 시작 (2) | 2023.11.24 |
내일배움캠프 게임개발(Unity) 19일차 231123 TIL (2) | 2023.11.23 |
내일배움캠프 게임개발(Unity) 18일차 231122 TIL (2) | 2023.11.22 |