public static void RemoveAllTask_GridItem()
 {
     foreach (var kv in GridItemMatDic)
     {
         DrawInstancedTool.RemoveTask(kv.Key);
     }
     GridItemMatDic.Clear();
 }
Esempio n. 2
0
 public static void Init()
 {
     if (System.Object.ReferenceEquals(Instance, null))
     {
         GameObject go = new GameObject("~DrawInstancedTool");
         Instance = go.AddComponent <DrawInstancedTool>();
         DontDestroyOnLoad(go);
     }
 }
Esempio n. 3
0
 // 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);
    }
Esempio n. 6
0
 private void OnDestroy()
 {
     DrawInstancedTool.RemoveAllTask();
 }
Esempio n. 7
0
 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);
 }