2025년 1월 8일 수요일

유니티 김치런 게임 제작: 초간단 Ctrl+C, Ctrl+V로 끝내는 게임 개발 도전!

 

저처럼 코드 입력하기 싫고 실행을 해보고 싶은 분들,

Ctrl+C, Ctrl+V 복사 붙여넣기 해서 사용하세요.

한 번 실행해 보면 유니티 구조적 이해에 많은 도움됩니다.


8. 김치런 튜토리얼 영상 링크

7. 김치런 게임 Heart .cs 소스코드 

6. 김치런 게임 Destroyer .cs 소스코드 

5. 김치런 게임 Spawner .cs 소스코드 

4. 김치런 게임 BackgroundScroll .cs 소스코드 

3. 김치런 게임 Mover .cs 소스코드 

2. 김치런 게임 GameManager .cs 소스코드 

1. 김치런 게임 Player .cs 소스코드 


#Unity #유니티 #kimchirun #김치런 #게임개발 #유니티초보자

2025년 1월 6일 월요일

7. 김치런 게임 Heart .cs 소스코드

저처럼 코드 입력하기 싫고 실행을 해보고 싶은 분들,
Ctrl+C, Ctrl+V 복사 붙여넣기 해서 사용하세요.
한 번 실행해 보면 유니티 구조적 이해에 많은 도움됩니다.

김치런 튜토리얼 영상 링크
https://www.youtube.com/watch?v=A58_FWqiekI


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Heart : MonoBehaviour
{
    // 활성화된 하트(체력이 있을 때) Sprite
    public Sprite OnHeart;

    // 비활성화된 하트(체력이 없을 때) Sprite
    public Sprite OffHeart;

    // Sprite를 렌더링하는 SpriteRenderer
    public SpriteRenderer SpriteRenderer;

    // 이 하트 오브젝트가 담당하는 체력 순서 (1번 하트, 2번 하트 등)
    public int LiveNumber;

    // Start 메서드: 시작 시 호출 (현재는 비어 있음)
    void Start()
    {
        // 필요하면 초기화 작업을 여기에 작성
    }

    // Update 메서드: 매 프레임 호출
    void Update()
    {
        // 현재 플레이어의 남은 체력(lives)이 이 하트의 순서(LiveNumber) 이상인지 확인
        if (GameManager.Instance.lives >= LiveNumber)
        {
            // 체력이 있다면 활성화된 하트 Sprite를 표시
            SpriteRenderer.sprite = OnHeart;
        }
        else
        {
            // 체력이 없으면 비활성화된 하트 Sprite를 표시
            SpriteRenderer.sprite = OffHeart;
        }
    }
}

코드 분석

  1. 하트 Sprite 전환:

    • GameManager.Instance.lives 값을 기준으로 LiveNumber와 비교.
    • 현재 체력 값이 LiveNumber 이상이면 OnHeart Sprite를, 그렇지 않으면 OffHeart Sprite를 적용.
  2. 하트의 역할:

    • Heart 오브젝트는 특정 체력 단계(LiveNumber)를 나타냄.
    • 예를 들어, LiveNumber가 1인 하트는 체력이 1 이상일 때 활성화 상태, 그렇지 않으면 비활성화 상태.
  3. SpriteRenderer:

    • 하트 Sprite를 화면에 렌더링하는 컴포넌트.
    • Sprite를 동적으로 변경하여 체력 상태를 반영.

코드 동작

  • 이 스크립트는 각 하트 오브젝트에 부착되어, 플레이어의 체력 상태를 시각적으로 나타냅니다.
  • GameManager에서 관리하는 lives 값이 변경되면, 하트의 활성화 상태가 동적으로 업데이트됩니다.

6. 김치런 게임 Destroyer .cs 소스코드

저처럼 코드 입력하기 싫고 실행을 해보고 싶은 분들,
Ctrl+C, Ctrl+V 복사 붙여넣기 해서 사용하세요.
한 번 실행해 보면 유니티 구조적 이해에 많은 도움됩니다.

김치런 튜토리얼 영상 링크
https://www.youtube.com/watch?v=A58_FWqiekI


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Destroyer : MonoBehaviour
{
    // Start 메서드: 시작 시 호출 (현재는 비어 있음)
    void Start()
    {
        // 이 메서드는 비워두었으나, 초기화가 필요하면 여기에 작성
    }

    // Update 메서드: 매 프레임 호출
    void Update()
    {
        // 오브젝트의 x 좌표가 -13보다 작아지면
        if (transform.position.x < -13)
        {
            // 현재 게임 오브젝트를 삭제
            Destroy(gameObject);
        }
    }
}

코드 분석

  1. 오브젝트 위치 검사:

    • Update 메서드는 매 프레임마다 실행되며, 현재 게임 오브젝트의 x 좌표를 검사.
    • x 좌표가 -13보다 작으면 Destroy(gameObject)로 해당 오브젝트를 삭제.
  2. 오브젝트 삭제:

    • Destroy(gameObject)는 현재 스크립트가 붙어있는 게임 오브젝트를 메모리에서 제거.
    • 보통 화면 밖으로 나간 오브젝트나 사용되지 않는 오브젝트를 제거할 때 사용.
  3. Start 메서드:

    • Start 메서드는 게임 오브젝트가 생성될 때 한 번 호출되지만, 이 스크립트에서는 사용하지 않음.

5. 김치런 게임 Spawner .cs 소스코드

저처럼 코드 입력하기 싫고 실행을 해보고 싶은 분들,
Ctrl+C, Ctrl+V 복사 붙여넣기 해서 사용하세요.
한 번 실행해 보면 유니티 구조적 이해에 많은 도움됩니다.

김치런 튜토리얼 영상 링크
https://www.youtube.com/watch?v=A58_FWqiekI

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Spawner : MonoBehaviour
{
    [Header("Setting")]
    public float minSpawnDelay; // 최소 스폰 지연 시간
    public float maxSpawnDelay; // 최대 스폰 지연 시간

    [Header("References")]
    public GameObject[] gameObjects; // 스폰할 게임 오브젝트의 배열

    // 스크립트가 활성화될 때 호출
    void OnEnable()
    {
        // 최소 및 최대 지연 시간 내에서 랜덤한 시간 후에 Spawn() 호출
        Invoke("Spawn", Random.Range(minSpawnDelay, maxSpawnDelay));
    }

    // 스크립트가 비활성화될 때 호출
    void OnDisable()
    {
        // 모든 예약된 호출 취소
        CancelInvoke();
    }

    // 새로운 오브젝트를 스폰하는 함수
    void Spawn()
    {
        // gameObjects 배열에서 무작위로 하나의 오브젝트를 선택
        GameObject randomObject = gameObjects[Random.Range(0, gameObjects.Length)];

        // 선택된 오브젝트를 현재 Spawner 위치에 생성
        Instantiate(randomObject, transform.position, Quaternion.identity);

        // 다음 Spawn 호출을 랜덤한 시간 후에 예약
        Invoke("Spawn", Random.Range(minSpawnDelay, maxSpawnDelay));
    }
}

코드 분석

  1. 스폰 딜레이 설정:

    • minSpawnDelaymaxSpawnDelay를 이용해 스폰 간격을 랜덤하게 조절.
    • Random.Range(minSpawnDelay, maxSpawnDelay)를 사용해 지정된 범위 내에서 지연 시간을 선택.
  2. 게임 오브젝트 배열:

    • gameObjects 배열에 스폰할 수 있는 오브젝트를 등록.
    • Random.Range(0, gameObjects.Length)로 배열에서 무작위로 하나의 오브젝트를 선택.
  3. OnEnableOnDisable:

    • 스크립트가 활성화(OnEnable)되면 Spawn 호출을 예약.
    • 비활성화(OnDisable)되면 예약된 모든 호출을 취소(CancelInvoke).
  4. Spawn 메서드:

    • 배열에서 무작위로 선택된 오브젝트를 Instantiate를 통해 현재 위치(transform.position)에 생성.
    • 스폰된 오브젝트는 기본 방향(Quaternion.identity)을 가짐.
    • 다음 스폰을 예약하기 위해 Invoke를 재귀적으로 호출.

코드 동작

  • 스크립트가 활성화되면, 무작위 지연 시간 후에 Spawn 메서드가 호출되어 오브젝트가 생성됨.
  • 생성 후에는 또 다른 무작위 지연 시간 후에 다음 Spawn이 호출되며, 반복적으로 동작.
  • 스크립트가 비활성화되면 모든 예약된 호출이 취소되어 스폰이 멈춤.
-


Sidewinder


World


FishMusic


LaughingBaby