public static void RemoveAllTask_GridItem() { foreach (var kv in GridItemMatDic) { DrawInstancedTool.RemoveTask(kv.Key); } GridItemMatDic.Clear(); }
public static void Init() { if (System.Object.ReferenceEquals(Instance, null)) { GameObject go = new GameObject("~DrawInstancedTool"); Instance = go.AddComponent <DrawInstancedTool>(); DontDestroyOnLoad(go); } }
// Use this for initialization void Start() { for (int i = 0; i < 5; i++) { m_RenderTask.Add(DrawInstancedTool.AddTask("cube" + i, mesh, material)); m_RenderList.Add(new List <uint>()); } for (int i = 0; i < m_RenderTask.Count; i++) { for (int j = 0; j < 1023; j++) { uint id = m_RenderTask[i].Add(Random.insideUnitSphere * 5, Vector3.zero, Vector3.one); m_RenderList[i].Add(id); } } }
public static int AddTask_GridItem(string name) { if (GridItemMesh == null) { GridItemMesh = new Mesh(); GridItemMesh.vertices = new Vector3[4] { new Vector3(-0.5f, 0, 0), new Vector3(0.5f, 0, 0), new Vector3(-0.5f, 1, 0), new Vector3(0.5f, 1, 0) }; GridItemMesh.uv = new Vector2[4] { new Vector2(0, 0), new Vector2(1, 0), new Vector2(0, 1), new Vector2(1, 1) }; GridItemMesh.triangles = new int[6] { // lower left triangle 0, 2, 1, // upper right triangle 2, 3, 1 }; } if (!GridItemMatDic.ContainsKey(name)) { #if TEST GridItemMatDic[name] = Resources.Load<Material>(name); #else LoadManager.Instance.LoadAsset("lworld/instanced", name, "mat", typeof(Material), (data) => { GridItemMatDic[name] = data as Material; }, false); #endif GridItemTasks.Add(DrawInstancedTool.AddTask(name, GridItemMesh, GridItemMatDic[name])); return GridItemTasks.Count - 1; } return -1; }
public static void AddTask_Route(string[] MatPB_Float, string[] MatPB_Vec4) { if (RouteMesh == null) { RouteMesh = new Mesh(); RouteMesh.vertices = new Vector3[4] { new Vector3(0, -0.5f, 0), new Vector3(1, -0.5f, 0), new Vector3(0, 0.5f, 0), new Vector3(1, 0.5f, 0) }; RouteMesh.uv = new Vector2[4] { new Vector2(0, 0), new Vector2(1, 0), new Vector2(0, 1), new Vector2(1, 1) }; RouteMesh.triangles = new int[6] { // lower left triangle 0, 2, 1, // upper right triangle 2, 3, 1 }; } if (RouteMat == null) { #if TEST RouteMat = Resources.Load<Material>("path_instanced"); #else LoadManager.Instance.LoadAsset("lworld/instanced", "path_instanced", "mat", typeof(Material), (data) => { RouteMat = data as Material; }, false); #endif } RouteTask = DrawInstancedTool.AddTask(RouteTaskName, RouteMesh, RouteMat, MatPB_Float, MatPB_Vec4); }
private void OnDestroy() { DrawInstancedTool.RemoveAllTask(); }
private void Awake() { DrawInstancedTool.Init(); }
public static void RemoveTask_Route() { DrawInstancedTool.RemoveTask(RouteTaskName); }
public static void RemoveTask_GridItem(string name) { DrawInstancedTool.RemoveTask(name); GridItemMatDic.Remove(name); }