/
TON618OFF
/
Unity-Project-RTU
Обзор
Документация
Войти
/
TON618OFF
/
Unity-Project-RTU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Library/PackageCache/com.unity.visualscripting@1.9.4/Editor/VisualScripting.Flow/Framework/Nesting/SuperUnitWidget.cs
59 строк
2 KB
TON618OFF
release
03 окт 2024, 22:20
03 окт 2024, 22:20
7c70e9f
Код
Авторство
О чём код?
using System.Linq; using UnityEditor; using UnityEngine; namespace Unity.VisualScripting { [Widget(typeof(SubgraphUnit))] public class SuperUnitWidget : NestrerUnitWidget<SubgraphUnit>, IDragAndDropHandler { public SuperUnitWidget(FlowCanvas canvas, SubgraphUnit unit) : base(canvas, unit) { } protected override NodeColorMix baseColor { get { // TODO: Move to descriptor for optimization using (var recursion = Recursion.New(1)) { if (unit.nest.graph?.GetUnitsRecursive(recursion).OfType<IEventUnit>().Any() ?? false) { return NodeColor.Green; } } return base.baseColor; } } public DragAndDropVisualMode dragAndDropVisualMode => DragAndDropVisualMode.Generic; public bool AcceptsDragAndDrop() { return DragAndDropUtility.Is<ScriptGraphAsset>() && FlowDragAndDropUtility.AcceptsScript(graph); } public void PerformDragAndDrop() { UndoUtility.RecordEditedObject("Drag & Drop Macro"); unit.nest.source = GraphSource.Macro; unit.nest.macro = DragAndDropUtility.Get<ScriptGraphAsset>(); unit.nest.embed = null; unit.Define(); GUI.changed = true; } public void UpdateDragAndDrop() { } public void DrawDragAndDropPreview() { GraphGUI.DrawDragAndDropPreviewLabel(new Vector2(edgePosition.x, outerPosition.yMax), "Replace with: " + DragAndDropUtility.Get<ScriptGraphAsset>().name, typeof(ScriptGraphAsset).Icon()); } public void ExitDragAndDrop() { } } }