Files
Convention-Unity-Demo/Assets/Scripts/MoreMaterialUpdatement/BaseOnMaterialUpdatement.cs

40 lines
1.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Convention;
using UnityEngine;
namespace Demo.Game
{
public abstract class BaseOnMaterialUpdatement : Updatement<float>
{
public abstract string TargetFieldName { get; }
protected override float Lerp(float begin, float end, float t)
{
return Mathf.Lerp(begin, end, t);
}
[Content] public MeshRenderer TargetMeshRenderer;
protected override void UpdateData(float data)
{
if (TargetMeshRenderer != null)
TargetMeshRenderer.material.SetFloat(TargetFieldName, data);
}
/// <summary>
/// 绑定到允许的渲染器
/// </summary>
/// <param name="path">脚本位置</param>
[Convention.RScript.Variable.Attr.Method]
public void Load(string path)
{
var so = FindWithPath(path, false);
if (so != null)
{
TargetMeshRenderer = so.GetComponent<MeshRenderer>();
}
}
}
}