using System.IO; using UnityEngine; public class FloorCombineManager : CombineTileByCPU, IMethodHandler { public Material material; public Shader cutoutShader; JsonConfigParser.TileConfig config; public static FloorCombineManager Instance { get; private set; } private void Awake() { if (Instance != null && Instance != this) { Destroy(gameObject); return; } Instance = this; DontDestroyOnLoad(gameObject); } public void HandleMethod(string methodName, string jsonParameter) { switch (methodName) { case "SetTexture": SetTexture(jsonParameter); break; case "GetCombinedTexture": GetCombinedTexture(jsonParameter); break; default: Debug.LogWarning($"Unknown method: {methodName}"); break; } } public override JsonConfigParser.TileConfig GetConfig() { return config; } public override void SetTileConfig(string jsonContent) { config = ConfigManager.getTestTileConfig(jsonContent); } public override Material GetCurrentMaterial() { return material; } public override Shader GetCurrentShader() { return cutoutShader; } public void SetTexture(string jsonStr) { ConfigCache.Instance.SetConfig("floor", jsonStr); UpdateMaterial(jsonStr); } public new void GetCombinedTexture(string jsonStr) { base.GetCombinedTexture(jsonStr); } // void Start() // { // string filePath = Path.Combine(Application.dataPath, "Config/TilePingPu05.json"); // string jsonContent = File.ReadAllText(filePath); // SetTexture(jsonContent); // } }