기술나눔

[Unity2D 2022: 파티클 시스템] 히트 파티클 특수 효과 추가

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. 입자 특수 효과 게임 개체 만들기

2. 입자 시스템 속성 수정

1. 기본 속성

(1) 방출된 입자의 지속 시간(Duration)을 1초로 수정합니다.

(2) 루핑을 선택 취소합니다.

(3) 입자 존재 시간(Start Lifetime)을 0.1에서 0.2 사이의 임의 값으로 수정합니다.

(4) 입자 초기 속도(Start Speed)를 0으로 수정합니다.

(5) 입자 초기 크기(Start Size)를 0.7에서 1 사이의 임의의 값으로 수정합니다.

(6) 입자 초기 회전 각도(Start Rotation)를 0에서 360 사이의 임의 값으로 수정합니다.

2. 방출

(1) 방출된 입자 속도(Rate over Time)를 0으로 설정합니다(즉, 입자를 방출하지 않음).

(2) 버스트(Burst) 추가, 시간은 0, 횟수는 5

3. 이미터 형상(Shape)

(1) 모양을 원형으로 설정

(2) 회전 각도(Rotation)를 x축 방향으로 900으로 설정합니다.

(3) 반경을 (Radius) 0.12로 설정합니다.

(4) 모드(Mode)를 Burst Spread(폭발 확산)으로 설정합니다.

4. 입자 색상(수명에 따른 색상)

(1) 투명도를 255-0으로 설정합니다(즉, 점점 더 투명해짐).

5. 입자 크기(수명에 따른 크기)

(1) 입자 크기를 0.6-1로 설정

6. 입자 텍스처 애니메이션(Texture Sheet Animation)

(1) 입자 스프라이트 그림 추가

3. 히트 특수 효과 프리팹 생성

4. 총알이 적에게 명중하면 특수 효과가 재생됩니다.

1. 글머리 기호 스크립트를 편집합니다.

(1) 히트 특수 효과 프리팹 생성

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. }

(2) 반복기 인터페이스를 다시 작성하고 1초 지연 후 적중 입자 효과를 삭제합니다.

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. // 在1s后删除粒子特效
  6. private async Task deleteEffectParticle(GameObject EffectParticle, float delay)
  7. {
  8. // 等待1s
  9. await Task.Delay(1000);
  10. // 删除粒子特效
  11. Destroy(EffectParticle);
  12. }
  13. }

(3) 적을 타격할 때, 총알 위치에 타격 입자 특수 효과를 생성하며, 이는 1초 후 삭제됩니다.

  1. public class Bullet : MonoBehaviour
  2. {
  3. // 创建命中特效预制体
  4. public GameObject hitEffectParticlePrefab;
  5. // 击中敌人
  6. private void OnCollisionEnter2D(Collision2D collision)
  7. {
  8. Enemy enemy = collision.gameObject.GetComponent<Enemy>();
  9. if(enemy != null) {
  10. enemy.changeHealthPoint(-25);
  11. GameObject hitEffectParticle = Instantiate(hitEffectParticlePrefab, transform.position, Quaternion.identity);
  12. deleteHitEffectParticle(hitEffectParticle, 1);
  13. }
  14. Destroy(gameObject);
  15. }
  16. // 在1s后删除粒子特效
  17. public static async Task deleteEffectParticle(GameObject EffectParticle, float delay)
  18. {
  19. // 等待1s
  20. await Task.Delay(1000);
  21. // 删除粒子特效
  22. Destroy(EffectParticle);
  23. }
  24. }

2. 총알 구조물에 적중 입자 특수 효과 추가

3. 최종 효과는 아래와 같습니다.

이 장의 끝입니다. 읽어 주셔서 감사합니다!