유니티(84)
-
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(13) 코인 점수 표시하기, UI 메뉴 이미지 추가하기
프로젝트에 Text(Legacy)를 추가하고 적절한 폰트를 설정한 후 코인 점수를 표시할 용도로 중앙 위쪽에 Text를 위치시킨다. 앵커는 최상단을 따라가게 하여 좌우에 영향을 받지 않게 한다. public class GameManager : MonoBehaviour { public Text gemScore; ... gemScore 변수를 추가한 후 void Start() { gem = 0; gemScore.text = gem.ToString(); } gemScore의 텍스트에 float 형의 gem을 string으로 바꿔 대입한다. 이제 PlayerScript에서 OnTriggerEnter2D에서 gem을 먹을 때 스코어가 올라가게 설정하면 된다. void OnTriggerEnter2D(Collider..
2023.09.22 -
[Unity] 캔버스(Canvas)와 UI, Text, RectTransform
Render Mode - Overlay 모니터의 크기나 해상도에 따라서 캔버스의 위치가 자동으로 변한다. 달라질 수 있는 UI의 상대적인 위치를 동일하게 고정시키며 확대 축소가 자동으로 된다. 게임 화면과 캔버스가 겹쳐서 보인다. 버튼 추가로 캔버스를 하나 만들면, 기본으로 Screen Space - Overlay로 설정되어있는 것을 볼 수 있다. 오버레이 모드에서는 캔버스와 왼쪽 아래 작은 게임 화면이 겹쳐서 나타나게 된다. Render Mode - Camera 캔버스의 크기가 카메라의 크기와 동일하게 자동으로 조정된다. Overlay 모드와 같게 캔버스와 UI 항목이 해상도에 따라 상대적인 위치가 동일하다. 기본으로는 캐릭터 스프라이트가 버튼 위에 올라가있다. 씬에서 조절하면 버튼이 캐릭터 스프라이트..
2023.09.22 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(12) 적 미사일 추가, 미사일 충돌
적절한 적 발사체 스프라이트를 찾아서 적용해주고 Tag, Layer를 추가하여 설정한다. RigidBody 2D, Box Collider 2D를 추가하고 EnemyShoot 스크립트를 새로 만든다. Player와 EnemyShoot의 교차점을 체크하여 Physics를 적용한다. public class EnemyShoot : MonoBehaviour { public float speed = 4; void Start() { } void Update() { transform.Translate(Vector3.left * speed * Time.deltaTime); } void OnBecameInvisible() { Destroy(gameObject); } } 코드는 위와 같이 작성하여 왼쪽으로 진행되게 만든다...
2023.09.18 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(11) 젬 점수, 젬 먹기
가장 먼저, GemScript에서 gem 변수를 추가한다. public class GemScript : MonoBehaviour { public float gemSpeed = 2; public float gem = 1; void Update() { transform.position += Vector3.left * Time.deltaTime * gemSpeed; } private void OnBecameInvisible() { Destroy(gameObject); } } 다음 AsteroidScript에서도 gem을 2 값으로 추가한다. public class AsteroidScript : MonoBehaviour { public float asteroidSpeed = 5; public float rota..
2023.09.18 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(10) 적 생성, 충돌, 제거
스프라이트들로 Enemy 애니메이션을 생성하고, Rigidbody 2D, Circle Collider 2D를 추가한다. Tag와 Layer도 Enemy로 설정한다. public class EnemyScript : MonoBehaviour { public int type = 0; public int hp = 3; public float enemySpeed = 4; void Start() { switch (type) { case 0: hp = 10; enemySpeed = 1.5f; break; case 1: hp = 20; enemySpeed = 1.4f; break; } } void Update() { transform.position += Vector3.left * enemySpeed * Time.de..
2023.08.31 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(9) 소행성 랜덤 생성기
랜덤으로 소행성이 날아오게 만들기 위해서 빈 오브젝트를 하나 생성하여 스크립트를 추가한다. GameManager 이름으로 스크립트를 하나 생성하였고, 자동적으로 스크립트 아이콘이 톱니 모양으로 바뀐다. public class GameManager : MonoBehaviour { public GameObject asteroid; public float time = 0; public float maxTime = 3; float asteroidGenSpeed; void Update() { asteroidGenSpeed = Random.Range(1.0f, 5.0f); time += Time.deltaTime * asteroidGenSpeed; if(time > maxTime) { time = 0; Instan..
2023.08.31