Unity(119)
-
[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 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(8) 소행성 파괴 이펙트
이전에 과정과 마찬가지로, explosion 애니메이션 적용을 위해 스프라이트 설정 후 애니메이션 빠르기를 조정한다. Hit 애니메이션과 마찬가지로, 애니메이션 1번 재생 후 사라져야 하기 때문에 Hit에 쓰인 스크립트를 그대로 적용한다. 코드를 추가하여 ShootScript에서, 소행성이 사라진 지점에 explosion 애니메이션을 적용할 것이다. public class ShootScript : MonoBehaviour { public GameObject explosion; public GameObject gem; public GameObject hitEffect; public float speed = 10; void Update() { transform.position += Vector3.right ..
2023.08.31 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(7) 젬 생성
적을 쏘아 격추시키면서 점수를 높이기 위해 젬을 배치하는 것은 플레이어의 경험을 향상 시키는 데에 효과적이다. 위와 같은 젬 스프라이트를 적용할 것이다. 설정한 후 Sprite Editor로 잘라서 한꺼번에 드래그하여 애니메이션을 만든다. 애니메이션을 적당히 편집하면 반짝이는 젬을 만들 수 있다. 이전에 해왔던 과정과 같은 방법이다. Item 레이어를 추가한 후 적용한다. Player와 Item 레이어의 충돌 체크도 한다. Circle Collider 2D와 Rigidbody 2D를 추가한다. Kinematic 설정을 한다. 소행성 파괴시 젬 생성 ShootScript에서 소행성이 파괴될 때 그 자리에 코인을 생성하는 코드를 추가할 것이다. public class ShootScript : MonoBeha..
2023.08.31 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(6) Hit 이펙트 추가
미사일이 소행성에 맞으면 그에 맞는 이펙트가 생겨야 한다. Hit 스프라이트를 알맞게 설정한 후 한꺼번에 Hierarchy 창으로 끌어서 애니메이션을 만든다. 애니메이션을 만든 경로에 Hit 애니메이션 클립이 있는데, 한 번 부딪힐 때 한 번만 이펙트가 생격야하므로 Loop Time을 체크 해제해야 한다. 해당 애니메이션 클립을 더블 클릭하여 Animation 창을 띄운 후 Hierarchy 창에서 hit1 스프라이트를 눌러 애니메이션을 재생해 보면 반복되는 것을 볼 수 있다. 한 번 반짝이고 서서히 사라지도록 애니메이션을 수정해야 한다. Add Property로 color를 추가하여 6프레임까지 Color.a 알파 값이 1을 유지하다가 8프레임에서 0을 만들어 사라지게 하였고, Sprite 부분을 확장..
2023.08.31 -
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(5) 소행성 추가
소행성 장애물을 추가하기 위해 스프라이트를 설정한 후 스크립트를 만들어서 적용할 것이다. public class AsteroidScript : MonoBehaviour { public float asteroidSpeed = 5; public float rotationspeed = 30; void Update() { transform.position += Vector3.left * Time.deltaTime * asteroidSpeed; transform.Rotate(new Vector3(0, 0, Time.deltaTime * rotationspeed)); } } 소행성의 이동과 회전을 같이 스크립트에 적용하면 그대로 동작하는 것을 볼 수 있다. public class AsteroidScript : Mo..
2023.08.31