Unity/게임 엔진 응용 프로그래밍

Unity : 룰렛 프로젝트

치명적흑형 2021. 10. 10. 23:06

프로젝트 생성

 

템플릿

프로젝트 이름

저장위치 확인

 


타겟 플랫폼으로 빌드 세팅

 

File -> Build Settings

 

타겟 플랫폼 클릭 -> Swich Platform


화면 크기 설정

 

Game창 -> 해당 화면 크기 선택 -> VSync 체크

 

VSync : 그래픽 카드의 프레임과 모니터의 주사율을 일치시켜주는 기능

 

VSync를 활성화하면 디스플레이하는 모니터의 주파수에 맞게 렌더링 퍼포먼스를 조절해줘서 마치 targetFrameRate가 설정된 효과를 보인다.

 


씬 저장하기

 

Files -> Save As

 

씬 이름 : GameScene

 

Save As > GameScene으로 Scenes폴더에 저장


프로젝트에 리소스 추가

 

프로젝트 창에 리소스를 관리할 폴더를 만들고 리소스를 추가한다

 

ex)

Scenes : 씬 파일 관리

Scripts : 유니티 C# 스크립트 관리

Textures : 이미지 리소스 관리

Sounds : 음성 리소스 관리

Prefabs : 프리팹 관리

 


씬에 오브젝트 배치하기

 

프로젝트 창에 있는 리소스를 하이어라키 창에 드래그 & 드롭

 

오브젝트 위치 조절

 

무브 툴을 이용하거나

정확한 위치가 필요하다면 인스펙터 창 -> Transfrom 컴포넌트 이용


레이어 관리

 

인스펙터 창 -> Oder in Layer

 

숫자가 작을수록 뒤 클수록 앞

순차적으로 적용됨

- 보다 큰 숫자가 앞에 위치

 


배경색 변경하기


하이어라키 창 -> Main Camera 클릭 -> Background의 색상바 클릭 -> 원하는 색상 선택 or Hexadecimal입력


스크립트 생성하기

 

프로젝트 창에 Scripts 폴더를 생성

 

폴더 우클릭 -> Create -> C# Script

 

스크립트 파일명 변경 : 해당 이름을 가진 클래스가 생성된다

 

스크립트 생성시 주의사항

 

스크립트 생성시 기본 이름으로 생성된다.

이미 생성한 스크립트 파일의 이름은 수정을 해도 해당 스크립트의 클래스 명이 바뀌지 않는다.

스크립트 명을 잘못 입력했을 경우 지우고 다시 만든다.

 


스크립트 게임오브젝트에 부착하기

 

스크립트를 수정하기 전에 해당 게임오브젝트에 스크립트를 붙여준다.

 

오브젝트 클릭

 

스크립트 드래그, 인스펙터 창에 드롭 또는 하이어라키 창의 게임오브젝트에 드롭

- Add Component 쪽으로 드롭하면 편하다


스크립트 수정하기

 

해당 스크립트 파일을 더블클릭한다.

 

비주얼스튜디오가 열리지 않는다면

Edit -> Preferences -> External Tools 에서 연결확인

 

 

룰렛 회전 시키기

Input.GetMouseButtonDown(0)

gameObject.transform.Rotate(0, 0, this.rotSpeed)

 

회전 정지 시키기

rotSpeed의 값을 조금씩 줄이면 일정한 속도(선형)로 감속하기 때문에 움직임이 부자연스러움

감쇠 계수를 사용하면 자연스러운 감속이 가능하다

(감쇠 계수 값을 변경하는 것만 으로도 감속 크기를 쉽게 바꿀수 있어 공기 저항에 따른 감속이나 스프링 진동 감쇠 등 다양한 장면에서 사용)

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

public class RouletteController : MonoBehaviour
{
    float rotSpeed = 0;

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        //클릭하면 회전 속도를 설정
        if(Input.GetMouseButtonDown(0))
        {
            this.rotSpeed = 10;
        }

        //회전 속도만큼 룰렛을 회전
        //this.gameObject.transform.Rotate(0, 0, this.rotSpeed);
        this.transform.Rotate(0, 0, this.rotSpeed);

        //룰렛을 감속
        this.rotSpeed *= 0.96f;
    }
}

빌드하기

 

File -> Build Settings

 

Android 플랫폼으로 선택 변경후 (변경은 프로젝트 생성시 해주는 것이 좋다)

Scenes In Build 에 빌드하고자 하는 씬을 추가한다

 

Add Open Scenes

 

 

불필요한 씬 삭제

 

PlayerSettings 선택

Company Name : 소문자 사용

Product Name : 한글 사용가능

Version : 0.0.1

제일 앞에 있는 숫자는 해당 라이브러리의 큰 변화를 뜻합니다. 거의 새로운 버전급의 변화
앞 숫자가 바뀐다면, 코드도 많이 바꿔야 할 것입니다.

그럼 중간 숫자는 뭘까요? 마이너한 Release를 뜻합니다. 새로운 기능, 새로운 방식이 추가되었지만, 코드를 비약적으로 바꾸지 않고 환경을 비약적으로 바꾸지 않는다는 소리죠. 단지 기능만 추가됐을 뿐


마지막 숫자는 버그 수정을 의미합니다. Django, React에 버그가 존재한다면, 버그를 수정하고 마지막 숫자를 +1을 하는거죠. 여러분들의 코드가 수정될 필요도 없고 새로운 기능도 추가된것도 아니죠.
https://ggodong.tistory.com/173

 

PlayerSettings -> Other Settings

 

 

설정이 끝나면 빌드한 후 스마트폰으로 확인