신입 개발자 공부 과정

1/17 Unity - 게임 기획/유니티 교과서 룰렛만들기 본문

C#/수업 내용

1/17 Unity - 게임 기획/유니티 교과서 룰렛만들기

Lewisjkim 2022. 1. 17. 16:11

게임 설계

1.화면에 놓일 오브젝트를 모두 나열

2.오브젝트를 움질일 수 있는 컨트롤러 스크립트를 정한다

3.오브텍트를 자동으로 생성할 수 있도록 제너레이터 스크립트를 정한다

4.UI를 갱신할 수 있도록 감독 스크립트를 준비한다

5.스크립트를 만드는 흐름을 생각한다


*GetMouseButtonUp/GetMouseButton/GetMouseButtonDown= 마우스를 땐순간/누르는 동안/눌린 순간

*GetKeyUp/GetKey/GetKeyDown= 키를 땐순간/누르는 동안/눌린 순간

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))//클릭하면 회전 속도를 설정한다
        {
            rotSpeed = 10; //룰렛 속도 10으로 설정
        }
        transform.Rotate(0, 0, this.rotSpeed);//속도 10만큼 룰렛을 회전시킨다 (누르면 계속 10의 속도로 돌아감)

        this.rotSpeed *= 0.96f;//점점 느려짐
    }
}

 

 

Unity - 스크립팅 API: Input

Input Manager에 설정된 각 축을 읽고 모바일 장치의 멀티터치/가속도계 데이터에 접근을 하는 경우에 이 클래스를 사용합니다. 다음의 기본 설정 축과 Input.GetAxis 함수를 이용해서 해당 축을 읽습니

docs.unity3d.com

강사님 code=

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

public class RouletteController : MonoBehaviour
{
    public enum eDir { 
        LEFT = 1, RIGHT = -1
    }

    public eDir dir;
    public float atten = 0.96f;
    public float initRotSpeed = 10;
    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)) {  //왼쪽 마우스 클릭 하면 
            rotSpeed = this.initRotSpeed * (int)dir;
        }

        //룰렛을 회전한다 (매프레임마다)
        this.transform.Rotate(0, 0, this.rotSpeed);

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