Files
AIC-Project/Client/Assets/Script/xmain/Manager/GroundManager.cs
T
2026-07-10 10:24:29 +08:00

82 lines
2.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace XGame
{
public class TerrainManager : MonoBehaviour
{
public static TerrainManager m_Instance = null;
//string heightMap = "res/scene/ground/create/height01.png";
//string mixMap = "res/scene/ground/create/mix03.png";//"res/scene/ground/create/mix01.tga";
string[] baseMap = { "res/scene/ground/mat/Ground_005_T.png", "res/scene/ground/mat/Ground_007_T.png",
"res/scene/ground/mat/Ground_G003_T.png", "res/scene/ground/mat/Ground_003_T.tga" };
string[] normalMap = { "res/scene/ground/mat/Ground_005_M.tga", "res/scene/ground/mat/Ground_G001_M.tga",
"res/scene/ground/mat/Ground_G003_M.tga", "res/scene/ground/mat/Ground_003_M.tga" };
private TerrainObject m_TerrainObject;
void Awake()
{
m_Instance = this;
Debug.Log("TerrainManager Awake");
}
public static IEnumerator Init()
{
if(m_Instance == null)
Debug.Log("TerrainManager m_Instance == null");
yield return m_Instance.LocalInit();
}
private IEnumerator LocalInit()
{
m_TerrainObject = new TerrainObject();
//yield return m_TerrainObject.CreateGroundObjectFromPic(0, 0, heightMap, mixMap, baseMap, normalMap, gameObject.transform);
yield break;
}
//heightMap 高度图
//mixMap 混合图
//baseMap 基础地表纹理图列表 4-16张
public static IEnumerator coCreateMap(string heightMap, string mixMap, string[] baseMap, Action<UnityEngine.Object[]> action)
{
List<UnityEngine.Object> result = new List<UnityEngine.Object>();
yield return XResLoader.coLoadAllRes(new string[] { heightMap, mixMap }, typeof(GameObject), objs =>
{
if (objs == null || objs[0] == null)
{
Debug.Log($"Load heightMap, mixMap Failed");
}
else
{
result.Add(objs[0]);//heightMap
result.Add(objs[1]);//mixMap
}
});
yield return XResLoader.coLoadAllRes(baseMap, typeof(GameObject), objs =>
{
if (objs == null || objs[0] == null)
{
Debug.Log($"Load heightMap, mixMap Failed");
}
else
{
for (int i = 0; i < objs.Length; ++i)
{
result.Add(objs[i]);//baseMap
}
}
});
action(result.ToArray());
}
void LoadGround(float xpos, float zpos)
{
}
}
}