미디어 콘텐츠 스터디

09. 좀비 죽이는 효과 만들기 본문

가상현실(Virtual Reality)/가상현실 맛보기

09. 좀비 죽이는 효과 만들기

danmujicat 2021. 7. 12. 16:14

시선(카메라)가 에단을 보면 광선총을 발사합니다. 만약 광선총이 에단에 명중하면 불꽃이 발생하고 3초가 지나면 에단은 죽습니다. 에단이 죽었을 때, 에단은 폭발하고(여기서는 포인트를 얻습니다) 새로운 위치에서 다시 부활합니다.

 

1. 좀비를 죽이는 스크립트 작성하기

   

① GameOjbect | Create Empty 메뉴를 선택하여 빈 GameObject 만들고 이름을GameManager로 변경합니다.

② 하이러키 창에서 GameManager를 선택하고 인스펙터 창에서 [Add Component]버튼을 클릭하고 New Script를 선택하여 KillTarget이라고 입력하고 [Create And New]버튼을 클릭합니다.

③ KillTarget.cs 스크립트를 열어 다음 코드를 작성합니다.

KillTarget.cs 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class KillTarget : MonoBehaviour {
   public GameObject target;
   public ParticleSystem hitEffect;
   public GameObject killEffect;
   public float timeToSelect = 3.0f;
   public int score;
   Transform camera;
   private float countDown;

   void Start() {
      camera = Camera.main.transform;
      score = 0;
      countDown = timeToSelect;
   }

   void Update()
  {
     bool isHitting = false;
     Ray ray = new Ray(camera.position, camera.rotation *
     Vector3.forward);
     RaycastHit hit;
     if (Physics.Raycast(ray, out hit))
     {
       if (hit.collider.gameObject == target)
       {
         isHitting = true;
       }
     }
     if (isHitting)
     {
        if (countDown > 0.0f)
       {
          // on target
          countDown -= Time.deltaTime;
          // print (countDown);
          hitEffect.transform.position = hit.point;
          if (hitEffect.isStopped)
         {
            hitEffect.Play();
         }
       }
       else
       {
         // killed
          Instantiate(killEffect, target.transform.position,
          target.transform.rotation);
          score += 1;
          countDown = timeToSelect;
          SetRandomPosition();
        }
     }
     else
      {
        // reset
        countDown = timeToSelect;
        hitEffect.Stop();
     }
   }

   void SetRandomPosition() {
     float x = Random.Range(-5.0f, 5.0f);
     float z = Random.Range(-5.0f, 5.0f);
     target.transform.position = new Vector3(x, 0.0f, z);
   }
}

 

2. 총탄 타격의 불꽃 만들기

 

2.1 파티클 효과 만들기

파티클 시스템사용하면 불, 폭발, 반짝임, 연기, 물 등 다양한 시각 효과를 만드는 데 사용되는 수명이 짧은 파티클을 많이 생성할 수 있습니다.

① 하이러키 창에서 GameManager를 선택하고 인스펙터 창에서 KillTarget(Script)창으로 이동합니다.

② 하이러키 창에서 Ethan 오브젝트를 인스펙터 창에서 Target 필드를 드래그인앤드룹합니다.

③ GameObject | Effects | Particle System 메뉴를 선택하고 이름을 SparkEmitter로 변경합니다.

④ 하이러키 창에서 GameManager를 선택하고 SparkEmitter를 Hit Effect필드로 드래그앤드룹합니다.

 

2.2 파티클 입자 변경하기

① 하이러키 창에서 SparkEmitter를 선택합니다. 그러면 씬창에서 재생되는 것을 볼 수 있습니다.

②인스펙터 창의 Particle System에서 다음 값을 설정합니다.

- Start Size: : 0.15

- Start Color: :빨간색/주황색 선택

- Start Lifetime : 0.3

- Start Speed : 0.3

- Max Particles : 50

③ Emission에서Rate over Time : 100을 설정합니다.

④ Shape에서 Shape: Sphere 및 Radius: 0.01을 설정합니다.

 

2.3 붉은 색 입자 뿌리기

① 프로젝트 창에서 StandardAssets / ParticleSystems / Prefabs의 Explosion을 선택합니다.

② Explosion을 하이러키 창에서 GameManager을 선택하고 인스펙터 창에서 Kill Target | Kill Effect필드에 드래그앤드룹합니다.

Comments