방명록
- 유니티 게임개발 입문 #32023년 09월 06일 21시 11분 45초에 업로드 된 글입니다.작성자: noun06
[게더 클론 개인 프로젝트]
캐릭터 색상 변경
- 플레이어의 SpriteRenderer 컴포넌트에 접근하여 색상 변경.
- 랜덤 색상 변경 및 기본 색상으로 초기화하는 메서드 생성.
//Player.cs private SpriteRenderer _spriteRenderer; private Color originalColor; private void Awake() { playerName.text = playerNameStr; playerName2.text = playerNameStr; _rigidbody = GetComponent<Rigidbody2D>(); _spriteRenderer = GetComponent<SpriteRenderer>(); originalColor = _spriteRenderer.color; } public void ChangeColorRandom() //랜덤 색상 변경 { Color randomColor = new Color(Random.value, Random.value, Random.value); _spriteRenderer.color = randomColor; } public void ResetColor() //기본 색상으로 변경 { _spriteRenderer.color = originalColor; }
채팅 시스템
- 인풋 필드의 onEndEdit 이벤트에 SubmitMessage메서드를 추가하여 호출을 통해 메시지 전송.
- AddMessage 메서드는 새로운 메시지를 현재 채팅창에 추가하는 역할 수행.
//Chat.cs using UnityEngine; using TMPro; using UnityEngine.UI; public class ChatSystem : MonoBehaviour { public TMP_Text chatText; public TMP_InputField messageInput; private void Start() { messageInput.onEndEdit.AddListener(SubmitMessage); // 엔터 키를 누르거나 입력을 마치면 SubmitMessage 메서드 호출. } private void SubmitMessage(string message) // 사용자가 입력한 메시지 전송. { if (!string.IsNullOrEmpty(message)) { AddMessage(message); messageInput.text = ""; // 인풋필드를 비워 새 메시지 입력 가능하게 설정. } } private void AddMessage(string message) //새 메시지를 채팅 내용에 추가. { string currentText = chatText.text; // 현재 텍스트와 새 메시지를 연결 string newMessage = currentText + "\n" + message; chatText.text = newMessage; } }
대화 UI 개선
- 단순하게 OnTrigger을 통해 구현하였지만 추후에 NPC 클래스를 새로 만들어 기능을 정확하게 구현할 계획.
//ShowUI.cs using UnityEngine; public class ShowUI : MonoBehaviour { public GameObject bellUI; public GameObject talkUI; private void Start() { bellUI.SetActive(false); talkUI.SetActive(false); } private void Update() { if (talkUI.activeSelf) { bellUI.SetActive(false); } } private void OnTriggerStay2D(Collider2D other) { if (other.CompareTag("Player")) { bellUI.SetActive(true); } } private void OnTriggerExit2D(Collider2D other) { if (other.CompareTag("Player")) { bellUI.SetActive(false); } } public void ShowDialogue() { bellUI.SetActive(false); talkUI.SetActive(true); } public void EndDialogue() { talkUI.SetActive(false); } }
애니메이션
- 도트 스타일 리소스를 간단하게 제작하여 애니메이션화 작업 진행.
결과물
다음글이 없습니다.이전글이 없습니다.댓글