Unity 6.3
0 онлайн 83 гостей 3 в системе
Вход

Handles.DrawOutline

Declaration

public static void DrawOutline(GameObject[] objects, Color parentNodeColor, Color childNodeColor, float fillOpacity);
public static void DrawOutline(GameObject[] objects, Color color, float fillOpacity);
public static void DrawOutline(List<GameObject> objects, Color parentNodeColor, Color childNodeColor, float fillOpacity);
public static void DrawOutline(List<GameObject> objects, Color color, float fillOpacity);
Obsolete public static void DrawOutline(int[] parentRenderers, int[] childRenderers, Color parentNodeColor, Color childNodeColor, float fillOpacity);
Obsolete public static void DrawOutline(int[] renderers, Color color, float fillOpacity);
public static void DrawOutline(Renderer[] renderers, Color parentNodeColor, Color childNodeColor, float fillOpacity);
public static void DrawOutline(Renderer[] renderers, Color color, float fillOpacity);

Параметры

Параметр Описание
объекты GameObjects для очертаний.
parentNodeColor Цвет контура GameObjects, явно указанный в параметрах objects и parentRenderers. Значение alpha управляет интенсивностью контура.
childNodeColor Цвет контуров GameObjects, которые являются дочерними к GameObjects в параметре objects. Значение alpha контролирует интенсивность контуров.
цвет Цвет контуров для objects и renderers.
parentRenderers Экземпляр IDs первого набора Рендереров. Если вы указываете GameObjects или Рендереры в качестве параметров, эти Рендереры принадлежат GameObjects, явно указанному в параметрах.
childRenderers Экземпляр IDs второго набора Рендереров. Если вы указываете GameObjects или Рендереры в качестве параметров, эти Рендереры принадлежат дочернему GameObjects объектов, указанных в параметрах.
fillOpacity Непрозрачность рендеров внутри каждого контура.
рендереры Рендереры, чтобы очертить.

Описание

Рисует контур вокруг указанного GameObjects в представлении Scene.

Это относится только к GameObjects Вы можете использовать это только во время игры. EventType.Repaint событие.

Вместо передачи GameObjects или Renderers, вы можете также использовать Renderer экземпляр IDs. Это улучшает производительность, потому что Unity не нужно получать экземпляр IDs от GameObjects или Renderers каждый раз, когда вы вызываете эту функцию.

NOTE: Перегрузки, которые отнимают GameObject[], Renderer[] или List<GameObject> чтобы избежать проблем с производительностью или памятью, используйте эти перегрузки только при рисовании относительно небольшого количества контуров (подумайте о предоставлении экземпляра рендерера, который будет выполнять эту работу) IDs непосредственно, если число контуров превышает 100).

Значения альфа parentNodeColor и childNodeColor контролировать интенсивность контура, 0 делает его полностью прозрачным, а 1 делает полностью непрозрачным.

fillOpacity контролирует вес мультипликатора цвета для рендеринга. Выше fillOpacity значения делают цвет более интенсивным и оставляют первоначальный объект менее заметным.

Дополнительные ресурсы Handles.DrawCamera.

using UnityEditor;
using UnityEngine;

namespace UnityEditor { [CustomEditor(typeof(GameObject))] public class CustomInspector : Editor { private GameObject[] objects;

public void OnEnable() { // Note: If you use FindGameObjectsWithTag in a Prefab Stage that you opened from a Scene, // it includes GameObjects from that Scene. Instead use: // var renderers = StageUtility.GetCurrentStage().FindComponentsOfType<Renderer>(); // to explicitly specify where to get the GameObjects from. objects = GameObject.FindGameObjectsWithTag("Player"); // populate the objects array with game objects }

public void OnSceneGUI() { // draw the outline with an alpha of 0.5 if (Event.current.type == EventType.Repaint) Handles.DrawOutline(objects, Color.yellow, Color.green, 0.1f); } } }