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]); } }