[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(15) 화면 해상도 고려하기
2023. 9. 25. 17:46ㆍUnity
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
반응형
'Unity' 카테고리의 다른 글
[XR 전문 인력 과정] 유니티 타워디펜스 만들기(2) -총쏘기(Raycast), 무기 잡기, 무기 던지기 (0) | 2023.11.23 |
---|---|
[XR 전문 인력 과정] 유니티 타워디펜스 만들기(1) -XR 세팅, 씬 세팅, 화면 회전, 플레이어 이동 (1) | 2023.11.22 |
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(14) 메인 메뉴 UI 추가하기 (2) | 2023.09.25 |
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(13) 코인 점수 표시하기, UI 메뉴 이미지 추가하기 (0) | 2023.09.22 |
[Unity] 캔버스(Canvas)와 UI, Text, RectTransform (0) | 2023.09.22 |