유니티

PCG 기술을 사용한 유니티 RPG 게임 개발 - 1장 도전 문제?

민또배기 2022. 5. 18. 12:59
반응형

유니티 버전 : 2020.3.25f1

작업환경 : Mac (Monterey 12.3.1)

 

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791161750187 

 

유니티 게임 개발을 위한 절차적 콘텐트 생성 - 교보문고

PCG 기술을 사용한 유니티 RPG 게임 개발 | 이 책에서 다루는 내용 ■ PCG 이론의 이해■ 의사 난수 사용 학습■ PCG용 재사용 가능한 알고리즘 제작■ PCG의 데이터 구조 평가■ 막대한 양의 콘텐트

www.kyobobook.co.kr

위 책을 구매해서 읽어보고 있습니다. 사실 더 많은 책들이 있는데.. 못 보고 있죠

1장은 의사난수에 대한 내용입니다. 랜덤하게 출력하는 방법에 대해서 알려주고 있죠

 

Hellow World라는 기본 예제 다음에 이를 토대로 주사위를 만들어보라고 해서 만들어보려 합니다.

인터넷에서 주사위 6면이 있는 그림을 찾아온뒤 유니티에서 sprite editor를 사용하여 나눴습니다.

 

중요한건 Sprite Mode는 Multiple로 변경해주셔야 합니다. 그래야 slice를 사용가능해요 그외 세팅은 위처럼 하시고 Sprite Editor를 클릭하시면 아마 안될 수 도 있습니다.

그렇다면 Window → Pacakge Manage 에서 2D Sprite를 다운받아 줍니다.

그런 다음 다시 Sprite Editor를 누르시면 아래처럼 창이 하나 뜨게 됩니다.

왼쪽 상단에 있는 Slice를 누르시고 Type은 Grid By Cell Count를 선택한 다음, Column&Row 값을 정해줍니다. 

 

하이어라키는 다음과 같이 작성하였고 PCGDice 스크립트를 작성하였습니다.

 

PCGDice.cs

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

public class PCGDice : MonoBehaviour
{
    public Sprite[] dices;
    public Image output;

    public void changDice()
    {
        Random.seed = (int)System.DateTime.Now.Ticks;
        int randomindex = Random.Range(0, 6);
        output.sprite = dices[randomindex];
    }
}

 

실행 시킨 뒤에 버튼을 누를 때마다 1~6중에 랜덤하게 주사위가 나타납니다.

 

 

반응형