(); Invoke("ForGameObjectFind", 30f); } // Start에 들어감 void ForGameObjectFind() { F_16_ParticleSet = GameObject.Find("ParticleSet").GetComponent(); waterParticle = GameObject.Find("Water_Particles").GetComponent(); fireParticle = GameObject.Find("ParticleSet").GetComponentsInChildren (); Invoke("ForGameObjectFind", 30f); } // Start에 들어감 void ForGameObjectFind() { F_16_ParticleSet = GameObject.Find("ParticleSet").GetComponent(); waterParticle = GameObject.Find("Water_Particles").GetComponent(); fireParticle = GameObject.Find("ParticleSet").GetComponentsInChildren (); Invoke("ForGameObjectFind", 30f); } // Start에 들어감 void ForGameObjectFind() { F_16_ParticleSet = GameObject.Find("ParticleSet").GetComponent(); waterParticle = GameObject.Find("Water_Particles").GetComponent(); fireParticle = GameObject.Find("ParticleSet").GetComponentsInChildren
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class omFireFightingTruck : omIObject
{
    public ParticleSystem waterParticle;
    public ParticleSystem[] fireParticle;

    public GameObject F_16_ParticleSet;
    // 코루틴 시간 제어
    public float waitForSeconds = 20.0f;

    [Header("Particle Time Setting")]
    // 물 파티클 시간
    public float water_time = 0f;
    public float water_timeDelay = 0f;
    // 불 파티클 시간
    public float fire_time = 0f;
    public float fire_timeDelay = 0f;

    AudioSource audioSource;

    void Start()
    {
        audioSource = GetComponent<AudioSource>();
        Invoke("ForGameObjectFind", 30f);
    }

    // Start에 들어감
    void ForGameObjectFind()
    {
        F_16_ParticleSet = GameObject.Find("ParticleSet").GetComponent<GameObject>();
        waterParticle = GameObject.Find("Water_Particles").GetComponent<ParticleSystem>();
        fireParticle = GameObject.Find("ParticleSet").GetComponentsInChildren<ParticleSystem>();
    }
    IEnumerator WaterOff()
    {
        yield return new WaitForSeconds(waitForSeconds);
        waterParticle.Play();
        audioSource.Play();

        while (water_time < water_timeDelay)
        {
            yield return null;

            water_time += Time.deltaTime;
            waterParticle.transform.localScale -= new Vector3(0.05f * Time.deltaTime, 0.05f * Time.deltaTime, 0.05f * Time.deltaTime);

            if (water_time >= water_timeDelay)
            {
                waterParticle.Stop();
                audioSource.Stop();
                break;
            }
        }
    }
    IEnumerator FireOff()
    {
        yield return new WaitForSeconds(waitForSeconds);

        // 불 파티클 제어
        while (fire_time < fire_timeDelay)
        {
            yield return null;

            fire_time += Time.deltaTime;

            for (int i = 0; i < fireParticle.Length; i++)
            {
                fireParticle[i].transform.localScale -= new Vector3(0.05f * Time.deltaTime, 0.05f * Time.deltaTime, 0.05f * Time.deltaTime);
            }
            if (fire_time >= fire_timeDelay)
            {
                for (int i = 0; i < fireParticle.Length; i++)
                {
                    fireParticle[i].Stop();
                    Destroy(F_16_ParticleSet);
                }
                break;
            }
        }
    }

    void OnTriggerEnter(Collider collider)
    {
        if (collider.tag == "FireFightingTruck" || collider.tag == "Fighter")
        {
            StartCoroutine(WaterOff());
            StartCoroutine(FireOff());
        }
    }
}