首先,创建一个名为TestScriptableObject的新c#脚本,其中包含以下代码。 TestScriptableObject.cs 代码语言:javascript 代码运行次数:0 运行 AI代码解释 using UnityEngine; [CreateAssetMenu(fileName = "TestScriptableObject")] public class TestScriptableObject : ScriptableObject { public AudioClip[] audioClips; publ...
1、创建一个枚举变量对场景中的物品(Item)进行分类,一般可以分为装备类,药品类等,其中装备又可以分为盔甲和武器等 2、创建ScriptableObject类 using UnityEngine; [CreateAssetMenu(menuName = "装备/物品")] public class ItemSO : ScriptableObject { public Sprite itemSprite;//物品图片 public EquipType equipT...
Trigger,用于处理触发逻辑 public abstract class ComposeAttackBase : ScriptableObject { public abstract bool CanTrigger(ComposeAttackContext context, bool prepareTrigger); public abstract IEnumerator Trigger(ComposeAttackContext context); } 1. 2. 3. 4. 5. public struct ComposeAttackContext { public Trans...
非持久化数据:状态名(String),拥有的状态列表(List<String>),应放在ScriptableObject中 持久化数据:状态名,当前状态(Dictionary<string,string>),应放在MonoBehaviour脚本上。该脚本一般是拥有单例模式的管理类。 我们先表示以下怎么使用状态的ScriptableObject表示。这里的ValueDropID和ValueDropValue方法主要提供给是在Trigg...
using UnityEngine; // 1 [CreateAssetMenu(menuName = "HitPoints")] public class HitPoints : ScriptableObject { // 2 public float value; } // 1 我们在第五章中使用了同样的技术。CreateAssetMenu在“创建”子菜单中创建一个条目,这允许我们轻松地创建 HitPoints 可脚本化对象的实例。这些实例作为资产...
在上面写上描述用以生成ScriptableObject资产文件 [CreateAssetMenu(fileName ="Event/CharacterEventSO")]publicclassCharacterEventSO:ScriptableObject{ } 这样就能在Project窗口中添加此资产文件 创建一个UnityAction的全局变量,用于传递Character数据 // 只传递Character数据publicUnityAction<Character>OnEventRised; ...
[CreateAssetMenu(fileName ="newPlayerData",menuName ="Data/Player Data/Base Data")] public class PlayerData : ScriptableObject { [Header("移动相关")]//移动速度 public float movementVelocity = 10f; } 创建完PlayerData脚本后,我们右键 -> 数据 -> 玩家状态设计 代码语言:javascript 代码运行次数:0...
using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName = ("Data/EventChannel/VoidEventChannel") , fileName = ("VoidEventChannel_"))] public class VoidEventChannel : ScriptableObject { event System.Action Delegate; //广播函数——执行委托 public void ...
首先在Scripts文件夹新建KitchenObjectSO.cs,注意这里不是继承自MonoBehaviour,而是ScriptableObject,要创建Scriptable Object,还需要在类前面加上Unity为我们准备的[CreateAssetMenu()],这样我们就可以在Unity编辑器中使用这个脚本创建对象 // KitchenObjectSO.cs中 using UnityEngine; [CreateAssetMenu()] public class ...
using UnityEngine; using System.Collections; public abstract class Ability : ScriptableObject { public string aName = "New Ability"; public Sprite aSprite; public AudioClip aSound; public float aBaseCoolDown = 1f; public abstract void Initialize(GameObject obj); public abstract void TriggerAbility(...