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

55 行
1.9 KiB

using NaughtyAttributes;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace GameplayIngredients.Actions
{
[HelpURL(Help.URL + "globals")]
public class SetGlobalAction : ActionBase
{
public Globals.Scope scope = Globals.Scope.Global;
public Globals.Type type = Globals.Type.Boolean;
public string Variable = "SomeVariable";
[ShowIf("isBool")]
public bool boolValue = true;
[ShowIf("isInt")]
public int intValue = 1;
[ShowIf("isString")]
public string stringValue = "Value";
[ShowIf("isFloat")]
public float floatValue = 1.0f;
[ShowIf("isGameObject")]
public GameObject gameObjectValue;
bool isBool() { return type == Globals.Type.Boolean; }
bool isInt() { return type == Globals.Type.Integer; }
bool isFloat() { return type == Globals.Type.Float; }
bool isString() { return type == Globals.Type.String; }
bool isGameObject() { return type == Globals.Type.GameObject; }
public override void Execute(GameObject instigator = null)
{
switch (type)
{
default:
case Globals.Type.Boolean:
Globals.SetBool(Variable, boolValue, scope);
break;
case Globals.Type.Integer:
Globals.SetInt(Variable, intValue, scope);
break;
case Globals.Type.String:
Globals.SetString(Variable, stringValue, scope);
break;
case Globals.Type.Float:
Globals.SetFloat(Variable, floatValue, scope);
break;
case Globals.Type.GameObject:
Globals.SetObject(Variable, gameObjectValue, scope);
break;
}
}
}
}