您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
51 行
1.5 KiB
51 行
1.5 KiB
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using NaughtyAttributes;
|
|
|
|
namespace GameplayIngredients.Logic
|
|
{
|
|
public class EditorOnlyLogic : LogicBase
|
|
{
|
|
public enum Mode
|
|
{
|
|
PlayerAndEditor,
|
|
EditorOnly,
|
|
PlayerOnly
|
|
}
|
|
|
|
[Tooltip("Disables when using Play From Here")]
|
|
public bool DisableOnPlayFromHere = false;
|
|
|
|
public Mode ExecutionPath = Mode.PlayerAndEditor;
|
|
|
|
[ReorderableList]
|
|
public Callable[] OnExecute;
|
|
|
|
public override void Execute(GameObject instigator = null)
|
|
{
|
|
bool acceptPlayFromHere = !(DisableOnPlayFromHere && (PlayerPrefs.GetInt("PlayFromHere") == 1));
|
|
|
|
switch(ExecutionPath)
|
|
{
|
|
case Mode.PlayerAndEditor:
|
|
if (acceptPlayFromHere)
|
|
Callable.Call(OnExecute, instigator);
|
|
break;
|
|
case Mode.EditorOnly:
|
|
if (Application.isEditor && acceptPlayFromHere)
|
|
Callable.Call(OnExecute, instigator);
|
|
break;
|
|
|
|
case Mode.PlayerOnly:
|
|
if (!Application.isEditor && acceptPlayFromHere)
|
|
Callable.Call(OnExecute, instigator);
|
|
break;
|
|
}
|
|
}
|
|
|
|
public override string GetDefaultName()
|
|
{
|
|
return $"If {ExecutionPath} {(DisableOnPlayFromHere? "(Not Play From Here)":"")}" ;
|
|
}
|
|
}
|
|
}
|