💬
Unity Timeline メモ
指定したフレームでスクリプトのメソッドを呼び出し、フレネルエフェクトを自然に消す
Signal Receiverで可能。
以下が動画である。
以下がソースコードである。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TimeLineManager : MonoBehaviour
{
private bool FrenelEffectOffFlg = false;
private float FrenelEffectOffSpan = 0.0f;
private Color startColor1;
private Color startColor2;
private Material obj1material;
private Material obj2material;
public SkinnedMeshRenderer obj1MeshRenderer;
public SkinnedMeshRenderer obj2MeshRenderer;
void Start()
{
obj1material = obj1MeshRenderer.material;
obj2material = obj2MeshRenderer.material;
}
//フレネルエフェクトを消す
public void FrenelEffectOff(){
FrenelEffectOffFlg = true;
}
void Update()
{
//フレネルエフェクトを消す
if(FrenelEffectOffFlg == true){
if(startColor1 == Color.black&&startColor2 == Color.black){
FrenelEffectOffFlg = false;
return;
}
FrenelEffectOffSpan += 0.2f * Time.deltaTime;
startColor1 = obj1material.GetColor("_FresnelColor");
startColor2 = obj2material.GetColor("_FresnelColor");
obj1material.SetColor("_FresnelColor", Color.Lerp(startColor1, Color.black, FrenelEffectOffSpan));
obj2material.SetColor("_FresnelColor", Color.Lerp(startColor2, Color.black, FrenelEffectOffSpan));
}
}
}
Discussion