Gameplay Ingredients是一组用于 Unity 游戏的运行时和编辑器工具:一组脚本的集合,可在制作游戏和原型时简化简单的任务。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

41 行
1.2 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Reflection;
using System.Linq;
using UnityEditor.Experimental.UIElements.GraphView;
using UnityEngine.Experimental.UIElements;
namespace GraphProcessor
{
public static class PortBehaviorFactory
{
static Dictionary<Type, Type> portBehaviors = new Dictionary<Type, Type>();
static PortBehaviorFactory()
{
foreach (var type in AppDomain.CurrentDomain.GetAllTypes())
{
var customPortBehaviorAttr = type.GetCustomAttribute< CustomPortBehaviorAttribute >();
if (customPortBehaviorAttr == null)
continue ;
portBehaviors[customPortBehaviorAttr.targetType] = type;
}
}
public static void CreatePortBehavior(BaseNodeView nodeView, FieldInfo field, Direction direction, EdgeConnectorListener listener, bool isMultiple, string name)
{
Type behaviorType;
portBehaviors.TryGetValue(field.FieldType, out behaviorType);
if (behaviorType == null)
behaviorType = typeof(DefaultPortBehavior);
Activator.CreateInstance(behaviorType, nodeView, field, direction, listener, isMultiple, name);
}
}
}