using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FunctionSync_Material : OneValueSyncObject
{
Renderer renderer;
///
/// MeshRender上材质球索引
///
public int materialIndex = 0;
Dictionary matDic = new Dictionary();
private void Start()
{
Init();
}
public void Init()
{
if (!hasInit)
{
renderer = GetComponent();
InitDynamic("Material_" + gameObject.name, CallBack, ValueType.String);
}
}
///
/// 设置材质
///
/// Resource文件下加载路径
public void SetMaterial(string ResourcePath)
{
if(!matDic.ContainsKey(ResourcePath))
{
Material m = Resources.Load(ResourcePath);
matDic.Add(ResourcePath, m);
}
renderer.materials[materialIndex].CopyPropertiesFromMaterial(matDic[ResourcePath]);
mystring = ResourcePath;
SendSync();
}
///
/// 回调
///
///
public void CallBack(string id, bool isEnterRoom)
{
if (!matDic.ContainsKey(mystring))
{
Material m = Resources.Load(mystring);
matDic.Add(mystring, m);
}
renderer.materials[materialIndex].CopyPropertiesFromMaterial(matDic[mystring]);
}
}