[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(15) 화면 해상도 고려하기

2023. 9. 25. 17:46Unity

728x90
반응형

화면 해상도에 따라 UI 또는 적 위치, 플레이어 위치가 일정한 비율을 유지하고 싶다면, Camera.main.ViewportToWorldPoint를 사용하면 된다.

 

 

min = Camera.main.ViewportToWorldPoint(new Vector3(0, 0, 0));
max = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, 0));

PlayerScript에서 플레이어의 이동을 제한하는 부분에서 해상도가 달라지더라도 Camera 크기에 맞게 최대치와 최소치를 반영할 수 있다.

 

 


 

 

GameManager 스크립트에서도,

    void Start()
    {
        gem = 0;
        gemScore.text = gem.ToString();
        maxRight = Camera.main.ViewportToWorldPoint(new Vector3(1, 1, 0)).x;
    }

public float maxRight; 변수를 추가하고, 카메라에 따른 최우측 좌표를 가져와서,

 

 

        if(time > spawnTime)
        {
            time = 0;
            int check = Random.Range(0, 2);
            if(check == 0)
            {
                Instantiate(asteroid, new Vector3(maxRight + Random.Range(2.0f, 5.0f), Random.Range(-4.0f, 4.0f), 0), Quaternion.identity);
            }
            else
            {
                int type = Random.Range(0, 2);
                Instantiate(enemies[type], new Vector3(maxRight + Random.Range(2.0f, 5.0f), Random.Range(-4.0f, 4.0f), 0), Quaternion.identity);
            }
        }

적 생성 부분에서 maxRight 좌표에 추가로 일정 좌표를 더해 화면 바깥에서 적이 생성되게 한다.

728x90
반응형