유니티/실습

주말 숙제 - 퍼즐아케이드 - 2 - 기본시스템을 만들자

파란색까마귀 2022. 2. 14. 14:08

2016. 4. 15. 17:01

https://blog.naver.com/nagne2011/220684220861

 

 

 

일단 에셋을 받아서 붙였다

이전의 큐브로 된 맵보다 훨씬 깔끔하다

타일이 약간 마음에 들지 않긴한데, 아래에 뭔가 깔아주면 괜찮을꺼 같다

 

게임 시스템은 약간 지저분하게 로직이 짜였다

 

먼저 '게임매니저'에서 타일을 깔아준다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    if (_tiledNum % 2 == 0
        {
            //print ("짝수입니다!");
            Debug.Log (_tiledNum +  "짝수입니다!");
            _tiledNum = 3;
        }
 
 
 
        //타일 셋팅
        for (int i = 0; i < _tiledNum; i++
        {
            for (int j = 0; j < _tiledNum; j++
            {
                Vector3 _pos = new Vector3 (i, 0, j);
                int k = i * _tiledNum + j;
                Debug.Log (k);
                GameObject _tile = Instantiate (_cube, _pos, Quaternion.identity) as GameObject;
                _tile.transform.SetParent (_tileParent.transform);
                _tile.gameObject.name = "Cube_" + k;
                Debug.Log (_tile.name);
                _tiless [k] = _tile;
                //_tiles.Add (_tile);
            }
        }
cs

 

플레이어는 항상 중앙에 있어야되니까, 타일 가로새로 갯수는 항상 홀수여야 한다

 

처음에 배열에 안들어가서 리스트나 벡터에도 넣어보고 골치좀 아팠는데,

 

1
public GameObject[] _tiless = new GameObject[25];
cs

애초에 배열 크기를 적당히 잡아줬어야 됬다..

 

아무튼 타일이 생성되고 플레이어의 조종은 게임매니저에서 진행한다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    void Update()
    {
        if (Input.GetKeyDown (KeyCode.W)) 
        {
            _Player.gameObject.GetComponent<playerScript> ().MoveUP ();
        }
        if (Input.GetKeyDown (KeyCode.A)) 
        {
            _Player.gameObject.GetComponent<playerScript> ().MoveLeft ();
        }
        if (Input.GetKeyDown (KeyCode.S)) 
        {
            _Player.gameObject.GetComponent<playerScript> ().MoveDown ();
 
        }
        if (Input.GetKeyDown (KeyCode.D)) 
        {
            _Player.gameObject.GetComponent<playerScript> ().MoveRight ();
 
        }
        if (Input.GetKeyDown (KeyCode.Return)) {
            _Player.gameObject.GetComponent<playerScript> ().MagicAttack();
        }
        if (Input.GetKeyDown (KeyCode.Space)) {
            _Player.gameObject.GetComponent<playerScript> ().MeleeAttack();
        }
    }
cs

 

 

간단하게, 방향키나 엔터키 등을 누르면 플레이어 스크립트의 함수들을 실행하는 코드다

아직은 카드를 뽑아 선택하는걸 구현하지 않아서 디버그 용으로 컨트롤러를 만들어 달아둔거고

실제 게임에서는 카드에 맞춰 해당 함수가 실행되도록 할 생각이다

728x90