Exemplo n.º 1
0
        /// <summary>
        /// Destroys the prioritizable mesh renderer.
        /// </summary>
        public static void DestroyInstance()
        {
            var inst = Instance;

            if (inst != null)
            {
                Util.KDestroyGameObject(inst.gameObject);
            }
            Instance = null;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Creates a mesh renderer object for the priority overlay.
        /// </summary>
        /// <param name="targetMesh">The mesh to render.</param>
        /// <param name="shader">The shader to use for rendering.</param>
        internal static void CreateInstance(Mesh targetMesh, Material shader)
        {
            var game = Game.Instance;

            if (game == null)
            {
                throw new ArgumentNullException(nameof(Game.Instance));
            }
            DestroyInstance();
            var go = targetMesh.CreateMeshRenderer("Priority Overlay", LayerMask.NameToLayer(
                                                       "UI"), shader);
            var t = go.transform;

            t.SetParent(game.transform);
            t.SetPositionAndRotation(Vector3.zero, Quaternion.identity);
            go.SetActive(false);
            Instance = go.AddOrGet <PrioritizableMeshRenderer>();
        }
Exemplo n.º 3
0
 /// <summary>
 /// Applied after the constructor runs.
 /// </summary>
 internal static void Postfix(PrioritizableRenderer __instance)
 {
     PrioritizableMeshRenderer.CreateInstance(__instance.mesh, __instance.material);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Applied before Cleanup runs.
 /// </summary>
 internal static void Prefix()
 {
     // Destroy the mesh renderer game object
     PrioritizableMeshRenderer.DestroyInstance();
 }