Short Cake
8PM - Animal Crossing Wild World

사생활 보호 설정

https://gamjia.tistory.com

Mini Rooms

  • 내 미니룸
  • 미니미설정
  • 미니룸설정
  • 답글수 [0]

What Friends Say

한마디로 표현해봐~

1촌평 관리

Unity 6 Challenge - 8

GamJia 2024. 12. 30. 21:53

. Unity 6 Kimchi Run - 8


Before&After

Unity 6 Challenge의 마지막 날입니다
실제 영상은 2시간 반으로 꽤 긴편인데
설명이 재밌어서 되게 금방 갔네요
 


 

Sprite의 Pixel Per Unit을 수정하고
Heart Component를 추가해주겠습니다
Script는 Youtube 영상을 참고하세요!
 


 
하트도 UI 객체라 Canvas에 넣어주었고
Horizontal Layout Group을 이용해
Heart를 우측상단에 정렬해주었습니다
 


using UnityEngine;
using UnityEngine.UI; // UI 관련 네임스페이스 추가

public class Heart : MonoBehaviour
{
    public Sprite onHeart;
    public Sprite offHeart;
    private Image image; 

    void Start()
    {
        image = GetComponent<Image>();
    }

    public void UpdateState(bool isOn)
    {
        // isOn이 true일 때는 onHeart, 아니면 offHeart로 스프라이트를 변경
        if (isOn)
        {
            image.sprite = onHeart;
        }
        else
        {
            image.sprite = offHeart;
        }
    }
}

 

UI 객체라서 Sprite Renderer 대신
Image를 사용했습니다
그래서 코드에 관련 내용만 바꿔줬어요
 


public Heart[] hearts;
public void UpdateHeart(int life)
{
    for(int i=0;i<hearts.Length;i++)
    {
        if(i<=life)
        {
            hearts[i].UpdateState(true);
        }

        else
        {
            hearts[i].UpdateState(false);
        }
    }
}

 
GameManager에 hearts 배열을 추가해서
lives에 맞게 Heart UI를 업데이트 해주는
내용을 따로 추가해주었습니다
 


 
GameManager에 Heart들을 연결하고
Heart에도 Sprite들을 연결해주었습니다
Intro 상태일 때 풀 하트로 리셋 시켜줬어요
 


 
일단 감소하는 것만 보여드렸지만
Heal 할 때도 Heart UI가 변하는 것을
따로 확인했고 리셋도 잘 됐습니다! 
 


 

점수 표시를 위한 Text를 하나 생성해주겠습니다

Text Mesh Pro 관련 세팅은 이 주소를 참고해주세요

https://gamjia.tistory.com/430

 

[Day 5] Flappy Bird Tutorial 4

오블완 챌린지 5일차 빼빼로데이이지만 친구가 없어서가장 사랑하는 나에게셀프 빼빼로를 사준 GamJia 입니다 어제 강의에 이어서Flappy Bird를 만들어 보겠습니다  어제 기둥 움직이고 Coroutine

gamjia.tistory.com

 


 

세팅 하다가 유니티가 튕기는 이슈가 있었지만;;

암튼 세팅이 잘 됐습니다

저는 '도스 이야기' 폰트를 사용했습니다

 

https://noonnu.cc/font_page/1140

 

눈누

도스이야기 - leedheo

noonnu.cc

 


만든 Heart와 Score는 게임 시작 이후에

보여지면 좋을 것 같아서 둘이 같이 묶어주었습니다

Intro때만 꺼두는걸로 설정했습니다

 


if(state==GameState.InGame)
{

    int score=Mathf.FloorToInt(CalculateScore());            
    scoreText.text="Score: "+score;

    if(score>highScore)
    {
        highScoreText.text="HighScore: "+score;
    }
    else
    {
        highScoreText.text="HighScore: "+highScore;
    }

    timer += Time.deltaTime;
    if (timer >= 10f) // 10초마다 실행
    {
        Time.timeScale += 0.1f;
        timer = 0f; // 타이머 초기화
    }

}

 

속도 증가 부분은 Time Scale을 이용했습니다

Time Scale은 죽으면 다시

원래 속도로 Reset 시켰습니다

 


영상 속도 2배 + 1초마다 스피드 증가 버전입니다!

 

TimeScale로 했지만 원하는 대로 잘 동작하고

오히려 관리하기도 더 쉬워졌습니다

암튼 게임은 이렇게 완성 되었네요!

 


https://play.unity.com/en/games/d10d467b-6a70-4d06-b545-b15325d9ca9a/webgl-builds

 

Kimchi Run on Unity Play

Nomad Coders님의 Unity 6 Challenge Kimchi Run 입니다!

play.unity.com

 

여기서 플레이 해볼 수 있습니다!

재밌는 게임 튜토리얼 제공해주신

노마드코더님께 감사드립니다!!

 

 

'Game Develop' 카테고리의 다른 글

Unity 6 Demo Showcase  (0) 2025.01.10
Unity 6 Challenge  (0) 2025.01.05
Unity 6 Challenge - 7  (0) 2024.12.29
Unity 6 Challenge - 6  (0) 2024.12.28
Unity 6 Challenge - 5  (0) 2024.12.24