알고리즘 코드카타

https://github.com/uhbbang33/Algorithm_Moon/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/1/42748.%E2%80%85K%EB%B2%88%EC%A7%B8%EC%88%98

 

유니티 스크립트 한글 깨짐 현상

해결방법

프로젝트 폴더에 .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에 한글 지원도 되도록 수정

 

오늘 하루 회고

요즘 코드에 자신이 없다.

다른 방법으로 더 잘 짤 수 있을것 같은데 어떻게 해야할지 답답..