[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(7) 젬 생성
2023. 8. 31. 16:54ㆍUnity
728x90
반응형
적을 쏘아 격추시키면서 점수를 높이기 위해 젬을 배치하는 것은 플레이어의 경험을 향상 시키는 데에 효과적이다.
위와 같은 젬 스프라이트를 적용할 것이다. 설정한 후 Sprite Editor로 잘라서 한꺼번에 드래그하여 애니메이션을 만든다.
애니메이션을 적당히 편집하면 반짝이는 젬을 만들 수 있다. 이전에 해왔던 과정과 같은 방법이다.
Item 레이어를 추가한 후 적용한다.
Player와 Item 레이어의 충돌 체크도 한다.
Circle Collider 2D와 Rigidbody 2D를 추가한다. Kinematic 설정을 한다.
소행성 파괴시 젬 생성
ShootScript에서 소행성이 파괴될 때 그 자리에 코인을 생성하는 코드를 추가할 것이다.
public class ShootScript : MonoBehaviour
{
public GameObject gem;
public GameObject hitEffect;
public float speed = 10;
void Update()
{
transform.position += Vector3.right * Time.deltaTime * speed;
}
void OnBecameInvisible()
{
Destroy(gameObject);
}
void OnTriggerEnter2D(Collider2D collision)
{
print(collision.tag);
if(collision.tag == "Asteroid")
{
AsteroidScript asteroidScript = collision.gameObject.GetComponent<AsteroidScript>();
asteroidScript.hp -= 3;
Instantiate(hitEffect, transform.position, Quaternion.identity);
if(asteroidScript.hp <= 0 )
{
Vector3 randomPosGem = new Vector3(Random.Range(-0.1f, 0.1f), Random.Range(-0.1f, 0.1f), 0);
Instantiate(gem, transform.position + randomPosGem, Quaternion.identity);
Destroy(collision.gameObject);
}
Destroy(gameObject);
}
}
}
public GameObject로 gem 프리팹을 넣고, 소행성의 체력이 10 이하가 되어 파괴될 때, Instantiate으로 gem 프리팹을 불러온다. 이때, 약간의 랜덤 값으로 위치를 조정할 수 있다.
728x90
반응형
'Unity' 카테고리의 다른 글
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(9) 소행성 랜덤 생성기 (0) | 2023.08.31 |
---|---|
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(8) 소행성 파괴 이펙트 (0) | 2023.08.31 |
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(6) Hit 이펙트 추가 (0) | 2023.08.31 |
[Unity Project] <ShootOut2D> 2D 슈팅 게임 만들기(5) 소행성 추가 (0) | 2023.08.31 |
[Unity] Euler 회전과 Quaternion 회전 (0) | 2023.08.28 |