내일배움캠프 21일차 TIL <Unity 입문 프로젝트 TIL> 05/08

정광훈(Unity_9기)·2025년 5월 8일

TIL (Today I Learned)

목록 보기
33/110
post-thumbnail

오늘 작업내용

인게임 코드와 유니티 기본 틀 간단 제작

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class UI : MonoBehaviour
{
    // -메인 화면-
    // 시작, 나가기
    // 설정

    // -스테이지 선택-
    // 스테이지 선택
    // 뒤로가기
    // 설정

    // -인게임-
    // 체력바 표시
    // 점수 표시
    // 일시정지 표시
    // 슬라이딩, 점프 표시

    // -게임 종료-
    // 다시하기, 나가기
    // 점수



    // 인게임UI
    #region 

    TextMeshProUGUI currentScoreText; // 현재 점수 
    TextMeshProUGUI bestScoreText; // 최고 점수
    SpriteRenderer hpBar; // 체력
    //Button stopButton; // 일시 정지
    Button jumpButton; // 점프 버튼
    Button slidingButton; // 슬라이딩 버튼

    private void Start()
    {
        Init();
        TestUI(); // UI 연결 테스트 함수 호출

    }

    public void Init()
    {
        // 컴포넌트와 연결
        Transform canvasTransform = transform.Find("Canvas");

        if (canvasTransform == null)
        {
            Debug.Log("Canvas 오브젝트를 찾을 수 없습니다!");
            return;
        }

        currentScoreText = canvasTransform.transform.Find("CurrentScoreText").GetComponent<TextMeshProUGUI>();

        if (currentScoreText == null)
        {
            Debug.LogError("ScoreText 오브젝트에 TextMeshProUGUI 컴포넌트가 없습니다!");
        }
        bestScoreText = canvasTransform.transform.Find("BestScoreText").GetComponent<TextMeshProUGUI>();

        //hpBar = transform.Find("HpBar").GetComponent<SpriteRenderer>();

        //stopButton = transform.Find("StopButton").GetComponent<Button>();
        jumpButton = canvasTransform.transform.Find("JumpButton").GetComponent<Button>();

        if (jumpButton == null)
        {
            Debug.LogError("jumpingButton 오브젝트에 Button 컴포넌트가 없습니다!");
        }
        slidingButton = canvasTransform.transform.Find("SlidingButton").GetComponent<Button>();

/*        jumpButton.onClick.AddListener(OnClickJumpButton)*/;
        if (jumpButton != null)
        {
            jumpButton.onClick.AddListener(OnClickJumpButton);
        }
        slidingButton.onClick.AddListener(OnClickSlidingButton);
    }

    public void SetUI(int currentscore, int bestscore)
    {
        currentScoreText.text = currentscore.ToString();
        bestScoreText.text = bestscore.ToString();
    }

    private void OnClickJumpButton()
    {
        Debug.Log("점프");
    }

    private void OnClickSlidingButton()
    {
        Debug.Log("슬라이딩");
    }

    private void TestUI()
    {
        Debug.Log("UI 연결 테스트 시작...");

        if (currentScoreText != null)
        {
            Debug.Log("CurrnetScoreText 연결 성공!");
            currentScoreText.text = "0"; // 초기값 설정
        }
        else
        {
            Debug.LogError("CurrnetScoreText 연결 실패!");
        }

        if (bestScoreText != null)
        {
            Debug.Log("BestScoreText 연결 성공!");
            bestScoreText.text = "0"; // 초기값 설정
        }
        else
        {
            Debug.LogError("BestScoreText 연결 실패!");
        }

        if (jumpButton != null)
        {
            Debug.Log("점프 버튼 연결 성공!");
        }
        else
        {
            Debug.LogError("점프 버튼 연결 실패!");
        }

        if (slidingButton != null)
        {
            Debug.Log("슬라이딩 버튼 연결 성공!");
        }
        else
        {
            Debug.LogError("슬라이딩 버튼 연결 실패!");
        }

        Debug.Log("UI 연결 테스트 완료.");
    }
    #endregion
}

오늘 수준별 강의에서 튜터님이 Debug.Log를 적극 활용하라고 하셨다.

Debug.Log를 사용하면 어디서 문제가 생겼는지
잘 연결 되었는지, 작동하는지 확인할 수 있다.

점프버튼과 슬라이딩 버튼이 연결이 잘 안되어 에러가 발생했는데
이왕 검사하는 김에 다른 코드에서도 문제가 없는지 확인하기 위해 사용하였다.

0개의 댓글