public SetAnimTriggerAction(StateBlackboard blackboard, Animator animator, BlackboardKey triggerKey, bool delayFinish = false) : base(blackboard) { this.animator = animator; this.delayFinish = delayFinish; this.triggerKey = triggerKey; this.isDynamic = true; }
public SetAnimFloatAction(StateBlackboard blackboard, Animator animator, float value, string paramName, BlackboardKey targetKey, bool delayFinish = false) : base(blackboard) { this.animator = animator; this.paramName = paramName; this.targetKey = targetKey; this.delayFinish = delayFinish; }
public void AddToBlackboard(Blackboard board, BlackboardKey key) { switch (option) { case 0: board.Add(key, ScriptableObject); break; case 1: board.Add(key, Vector2Int); break; case 2: board.Add(key, Float); break; case 3: board.Add(key, Int); break; } }
public void Add <T>(BlackboardKey key, T data) { dataMap.Add(key, data); }
public void Remove(BlackboardKey key) => _table.Remove(key.Key.KeyHash);
public bool Contains(BlackboardKey key) => Contains(key.Key);
public void Add(BlackboardKey key, Element data) => Add(key.Key.KeyHash, data);
public void Add <T>(BlackboardKey key, T data) => Add(key.Key.KeyHash, new Element(data));
public Element?Retrieve(BlackboardKey key) => Retrieve(key.Key.KeyHash);
public T RetrieveData <T>(BlackboardKey key) => (T)(Retrieve(key)?.Data);
/// <summary> /// 设置黑板数据,若设置了有效时间,则有效时间到了之后数据将失效 /// </summary> /// <param name="key"></param> /// <param name="value"></param> /// <param 有效时间="validTime"></param> public void SetValue(BlackboardKey key, object value, float validTime = -1.0f) { SetValue((int)key, value, validTime); }
/// <summary> /// 获取黑板数据 /// </summary> public T GetValue <T>(BlackboardKey key, T defaultValue) { return(GetValue <T>((int)key, defaultValue)); }
public static MeleeAttackState Create(StateBlackboard blackboard, Animator animator, NavMeshAgent navAgent, MeleeAttackData[] meleeAttacks, Transform transform, BlackboardKey attackRangeKey, BlackboardKey attackTriggerKey, SetAnimTriggerAction walkAction, int priority) { SetMeleeAttackAction setMeleeAttackAction = new SetMeleeAttackAction(blackboard, meleeAttacks); MoveToTargetAction moveToTargetAction = new MoveToTargetAction(blackboard, navAgent, attackRangeKey); LookAtTargetAction lookAtAction = new LookAtTargetAction(blackboard, transform); SetAnimTriggerAction attackAction = new SetAnimTriggerAction(blackboard, animator, attackTriggerKey, true); return(new MeleeAttackState(blackboard, setMeleeAttackAction, walkAction, moveToTargetAction, lookAtAction, attackAction, priority)); }
public void Set <T>(BlackboardKey key, T data) { dataMap[key] = data; }
public void RemoveFromBlackboard(BlackboardKey key) { }
public void AddToBlackboard(BlackboardKey key, BlackboardTypes entry) { entry.AddToBlackboard(_agent.AgentBlackboard, key); }
/// <summary> /// 尝试从黑板中获取指定数据 /// </summary> public bool TryGetValue <T>(BlackboardKey key, out T value) { return(TryGetValue <T>((int)key, out value)); }
/// <summary> /// 黑板中是否包含指定数据 /// </summary> public bool ContainsValue(BlackboardKey key) { return(ContainsValue((int)key)); }
/// <summary> /// 删除黑板数据 /// </summary> public bool DeleteValue(BlackboardKey key) { return(DeleteValue((int)key)); }
public T Get <T>(BlackboardKey key) { return((T)dataMap[key]); }
public MoveToTargetAction(StateBlackboard blackboard, NavMeshAgent navAgent, BlackboardKey key) : base(blackboard) { this.navAgent = navAgent; this.key = key; isDynamic = true; }