부모를 잃은 Trail fade out

7345 단어 Unity
예컨대 미사일에 트레일을 붙인 상태에서 미사일이 사라지면 트레일도 함께 사라진다.

트레일을 미사일의 자위에 붙여 미사일이 꺼질 때 분리해 멋지게 담백하게 만들어 보세요.


TrailFadeOut.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrailFadeOut : MonoBehaviour {
    [SerializeField, Range(0f,1f)] float forrowRate = 0f;
    [SerializeField, Range(0.1f, 4f)] float fadeTime = 1f;
    Coroutine coro;
    TrailRenderer trail;
    Vector3 oldPos;

    // Use this for initialization
    void Start () {
        coro = null;
        trail = GetComponent<TrailRenderer>();
        oldPos = transform.position;
    }

    // Update is called once per frame
    void Update () {
        if(transform.parent==null){
            if (coro == null){
                Vector3 spd = (transform.position - oldPos) / Time.deltaTime;
                coro = StartCoroutine(trailFadeCo(spd));
            }
        }else{
            oldPos = transform.position;
        }
    }

    IEnumerator trailFadeCo(Vector3 _spd){
        Color defCol = trail.material.GetColor("_TintColor");
        Color col = defCol;
        yield return null;
        while(col.a>0f){
            col.a = Mathf.Max(col.a-Time.deltaTime/fadeTime, 0f);
            trail.material.SetColor("_TintColor",col);
            transform.position += _spd * forrowRate * Time.deltaTime;
            yield return null;
        }
        Destroy(gameObject);
    }
}
트레일은 부모에게서 끊어진 후부터 담출했다가 사라진 뒤 다시 데스트로이(Destroy) 자신으로 돌아간다.
trail.material.SetColor("_TintColor",col);
의 섹션은 트레일에서 사용한 면도기로 적절하게 덮어쓰십시오.
_Color 속성이 있는 경우
trail.material.color = col
이렇게 기술할 수도 있다.

좋은 웹페이지 즐겨찾기