enum을 선언해도, Inspector에 나타나지 않아 잠시 당황했지만,


간단한 이유때문이었다.


enum의 경우 아래와 같이 class 외부에 작성하므로,


public enum MoveDirection{

Right, Left, Up, Down

}


public class InputManager : MonoBehaviour {



클래스 안에 선언되 있지 않기떄문에 유니티 인스펙터(Inspector) 창에 보이지 않는다.

예제에서는 보였는데 왜 보이지 않을까?

당연하게도 public으로 enum 변수를 선언해주어야 한다.

public class InputManager : MonoBehaviour {
public MoveDirection md;
}


와 같이 작성해주어야 보이게 된다.



Posted by sungho88
,

Random.Range(0, 10);


이라는 명령어를 통해 0부터 9까지의 값들 중 하나를 랜덤으로 생성하게 된다.


중요한 것은 0부터 10이 아니라는 것이다.


매개변수 두 개 중 


시작값인 0은 포함(inclusive)되고, 끝값은 제외(exclusive)된다.


물론 시작값이 0이 아니어도 마찮가지이다.


만약, 1부터 99까지의 값들중에 랜덤으로 값을 만들기 위해서는 다음과 같이 작성하면 된다.


Random.Range(1, 100);


100까지 하고 싶다면, 마지막 값에 +1을 해주는 방식으로 작성해야한다.


/////


float와 int형 두 개의 값을 구할 수 있다. 다른점은



 


float 범위를 구할때는 최대값이 포함되고,

int 범위를 구할때는 최대값이 제외된다.


즉,


Random.Range(0.0, 4.0);  --> 0.0부터 4.0까지의 범위 중 소숫점 임의의 값을 구할 수 있다. 4.0도 포함이다.


Random.Range(0, 4);  --> 0부터 4까지의 범위 중 정수값 중 임의의 값을 구할 수 있다. 4는 제외된다.



 

Posted by sungho88
,

이동을 하기 위해 키보드의 값 또는 마우스의 클릭을 받아야할 때가 있다.

이때 사용하는 문법이 바로 Input클래스이다.

 

        if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.W))

        {

            anim.Play(walk_up); 

        }

        else if (Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.S))

        {

            anim.Play(walk_down); 

        }


이렇게 작성을 하면, 


위 화살표 키 또는 W키가 눌렸을때, walk_up 애니메이션을 실행하고,

아래 화살표 키 또는 S키가 눌렸을때, walk_down 애니메이션을 실행한다.


Input.GetKeyDown(KeyCode.XX)


이것으로 키보드의 입력을 받아들인다.

그렇다면, 마우스 클릭은 어떻게 받아들일까?


Input.GetMouseButtonDown(0)


이렇게 작성하면 마우스의 클릭 신호를 받는다. 

그런데 괄호안에 0은 무엇을 의미하는 것일까.

바로, 0은 왼쪽 마우스 버튼, 1은 오른쪽 마우스 버튼을 의미한다.


게임할때는 주로 왼쪽을 사용하므로 (0)을 기입하면된다.


Posted by sungho88
,