行为树代替蓝图,清除bolt
parent
d69a45fbb2
commit
e0ee592faf
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using CleverCrow.Fluid.BTs.Trees;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Timeline;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
public interface IAIDirector
|
||||
{
|
||||
void Reset();
|
||||
}
|
||||
|
||||
public partial class AIDirectorBase<T> : AIObjectBase<T>, IAIDirector where T : new()
|
||||
{
|
||||
private float _tickTime;
|
||||
private float _attackRoundTime;
|
||||
private float _attackWaitTime;
|
||||
private int _attackTimes;
|
||||
private readonly Queue<int> _allEnemies = new Queue<int>();
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
_tree.Reset();
|
||||
_tickTime = 0;
|
||||
ResetAttack();
|
||||
}
|
||||
|
||||
private void ResetAttack()
|
||||
{
|
||||
_attackRoundTime = 0;
|
||||
_attackWaitTime = 0;
|
||||
_attackTimes = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb5c101493584922816297987f556350
|
||||
timeCreated: 1685469823
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0aaa578068984fb0894cc094a2f951e8
|
||||
timeCreated: 1685469893
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 90bc9dc235f347d390a7fe8a07a91e81
|
||||
timeCreated: 1685536217
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a69fa0ae74e4f97a550bc5f1533127c
|
||||
timeCreated: 1685536240
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 46b3a72814cc4bb5a450f2ab8e30fa50
|
||||
timeCreated: 1685536094
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d8599277a108fc243b3a74461dab1295
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c09975d219157c94386c2356b8fadcad
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,124 +0,0 @@
|
||||
using UnityEngine;
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
[UnitTitle("设置目标")]
|
||||
[UnitSubtitle("NodeSetTarget")]
|
||||
[UnitCategory("Game-AI")]
|
||||
public class NodeSetTarget : NodeDefault
|
||||
{
|
||||
public ValueInput target;
|
||||
protected override void Def()
|
||||
{
|
||||
target = ValueInput<int>("target");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = data.Entity;
|
||||
var t = flow.GetValue<int>(target);
|
||||
Util.GetEntity(e).SetTarget(t);
|
||||
}
|
||||
}
|
||||
|
||||
[UnitTitle("获取难度等级")]
|
||||
[UnitSubtitle("NodeGetDifficulty")]
|
||||
[UnitCategory("Game-AI")]
|
||||
public class NodeGetDifficulty : NodeDefault
|
||||
{
|
||||
public ValueOutput difficulty;
|
||||
protected override void Def()
|
||||
{
|
||||
difficulty = ValueOutput<int>("difficulty");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var d = Util.GetDifficulty();
|
||||
flow.SetValue(difficulty, d);
|
||||
}
|
||||
}
|
||||
|
||||
[UnitTitle("设置思考频率")]
|
||||
[UnitSubtitle("NodeSetThinkCD")]
|
||||
[UnitCategory("Game-AI")]
|
||||
public class NodeSetThinkCD : NodeDefault
|
||||
{
|
||||
public ValueInput cd;
|
||||
protected override void Def()
|
||||
{
|
||||
cd = ValueInput<float>("cd", 1);
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = data.Entity;
|
||||
var t = flow.GetValue<float>(cd);
|
||||
Util.SetThinkCd(e, t);
|
||||
}
|
||||
}
|
||||
[UnitTitle("设置饥饿值基础配置")]
|
||||
[UnitSubtitle("NodeHungryBasic")]
|
||||
[UnitCategory("Game-AI")]
|
||||
public class NodeHungryBasic : NodeDefault
|
||||
{
|
||||
public ValueInput max;
|
||||
public ValueInput now;
|
||||
public ValueInput inc;
|
||||
protected override void Def()
|
||||
{
|
||||
max = ValueInput<float>("max", 1);
|
||||
now = ValueInput<float>("now", 0);
|
||||
inc = ValueInput<float>("inc", 0);
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = data.Entity;
|
||||
var m = flow.GetValue<float>(max);
|
||||
var n = flow.GetValue<float>(now);
|
||||
var i = flow.GetValue<float>(inc);
|
||||
Util.SetHungryBasic(e, m, n, i);
|
||||
}
|
||||
}
|
||||
[UnitTitle("设置饥饿值自增倍率")]
|
||||
[UnitSubtitle("NodeHungryIncreaseRate")]
|
||||
[UnitCategory("Game-AI")]
|
||||
public class NodeHungryIncreaseRate : NodeDefault
|
||||
{
|
||||
public ValueInput rate;
|
||||
protected override void Def()
|
||||
{
|
||||
rate = ValueInput<float>("rate", 0);
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = data.Entity;
|
||||
var r = flow.GetValue<float>(rate);
|
||||
Util.SetHungryIncreaseRate(e, r);
|
||||
}
|
||||
}
|
||||
|
||||
[UnitTitle("释放技能")]
|
||||
[UnitSubtitle("NodeCastSkill")]
|
||||
[UnitCategory("Game-AI")]
|
||||
public class NodeCastSkill : NodeDefault
|
||||
{
|
||||
public ValueInput skill;
|
||||
public ValueInput dir;
|
||||
protected override void Def()
|
||||
{
|
||||
skill = ValueInput<int>("skill", 0);
|
||||
dir = ValueInput<Vector3>("dir");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = data.Entity;
|
||||
var s = flow.GetValue<int>(skill);
|
||||
var d = flow.GetValue<Vector3>(dir);
|
||||
var ett = Util.GetEntity(e);
|
||||
if (ett == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Util.CastSkillMonster(Util.GetEntity(e), s, d);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6f4dbb4915d65b842b1998aaab328d12
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,120 +0,0 @@
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
[UnitTitle("设置模块类型")]
|
||||
[UnitSubtitle("NodeSetModuleType")]
|
||||
[UnitCategory("Game-AIDirector")]
|
||||
public class NodeSetModuleType : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueInput type;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
type = ValueInput<EAIModuleType>("type", EAIModuleType.Spectator);
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var t = flow.GetValue<EAIModuleType>(type);
|
||||
Util.SetAIModuleType(e, t);
|
||||
}
|
||||
}
|
||||
[UnitTitle("获取模块类型")]
|
||||
[UnitSubtitle("NodeGetModuleType")]
|
||||
[UnitCategory("Game-AIDirector")]
|
||||
public class NodeGetModuleType : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueOutput type;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
type = ValueOutput<EAIModuleType>("type");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var t = Util.GetAIModuleType(e);
|
||||
flow.SetValue(type, t);
|
||||
}
|
||||
}
|
||||
[UnitTitle("获取模块数量")]
|
||||
[UnitSubtitle("NodeGetModuleNum")]
|
||||
[UnitCategory("Game-AIDirector")]
|
||||
public class NodeGetModuleNum : NodeDefault
|
||||
{
|
||||
public ValueInput type;
|
||||
public ValueOutput num;
|
||||
protected override void Def()
|
||||
{
|
||||
type = ValueInput<EAIModuleType>("type", EAIModuleType.Spectator);
|
||||
num = ValueOutput<int>("num");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var t = flow.GetValue<EAIModuleType>(type);
|
||||
var n = Util.GetModuleNum(t);
|
||||
flow.SetValue(num, n);
|
||||
}
|
||||
}
|
||||
[UnitTitle("设置攻击权限")]
|
||||
[UnitSubtitle("NodeSetAttackPermit")]
|
||||
[UnitCategory("Game-AIDirector")]
|
||||
public class NodeSetAttackPermit : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueInput value;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
value = ValueInput<bool>("value", false);
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var v = flow.GetValue<bool>(value);
|
||||
Util.SetAttackPermit(e, v);
|
||||
}
|
||||
}
|
||||
[UnitTitle("获取攻击权限")]
|
||||
[UnitSubtitle("NodeGetAttackPermit")]
|
||||
[UnitCategory("Game-AIDirector")]
|
||||
public class NodeGetAttackPermit : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueOutput ok;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
ok = ValueOutput<bool>("ok");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var o = Util.GetAttackPermit(e);
|
||||
flow.SetValue(ok, o);
|
||||
}
|
||||
}
|
||||
[UnitTitle("饥饿值是否已满")]
|
||||
[UnitSubtitle("NodeGetHungryFull")]
|
||||
[UnitCategory("Game-AIDirector")]
|
||||
public class NodeGetHungryFull : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueOutput ok;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
ok = ValueOutput<bool>("ok");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var o = Util.GetHungryFull(e);
|
||||
flow.SetValue(ok, o);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2716ab62449c9b6478ed0a7476b937da
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,90 +0,0 @@
|
||||
using UnityEngine;
|
||||
using Bolt;
|
||||
|
||||
/// <summary>
|
||||
/// 蓝图管理器
|
||||
/// 蓝图分为两种,不用保存中间状态的直接执行,执行后销毁入池;需要保存状态的返回对象,由创建者销毁入池
|
||||
/// </summary>
|
||||
namespace Game
|
||||
{
|
||||
public enum EBpState
|
||||
{
|
||||
Enter,
|
||||
Update,
|
||||
Leave,
|
||||
}
|
||||
public class BlueprintBasicData
|
||||
{
|
||||
public int Entity;
|
||||
public int Target;
|
||||
public int Owner;
|
||||
}
|
||||
public class BlueprintPoolItem : ObjectPoolItemBase
|
||||
{
|
||||
public GameObject m_GameObject;
|
||||
public FlowMachine m_FlowMachine;
|
||||
public VariableDeclarations m_Variables;
|
||||
protected override void OnCreate()
|
||||
{
|
||||
base.OnCreate();
|
||||
}
|
||||
protected override void OnDestroy()
|
||||
{
|
||||
base.OnDestroy();
|
||||
}
|
||||
}
|
||||
public class BlueprintPoolManager : ObjectPoolBase<BlueprintPoolManager>
|
||||
{
|
||||
private readonly string m_BlueprintPath = "Blueprint/";
|
||||
private BlueprintBasicData m_DefaultBlueprintBasicData = new BlueprintBasicData();
|
||||
public void Run(string name, string trigger, BlueprintBasicData data)
|
||||
{
|
||||
var bp = CreateBlueprint(name);
|
||||
SetData(bp, data);
|
||||
bp.m_FlowMachine.TriggerUnityEvent(trigger);
|
||||
bp.Destroy();
|
||||
}
|
||||
private void SetData(BlueprintPoolItem bpItem, BlueprintBasicData data)
|
||||
{
|
||||
if (data == null)
|
||||
{
|
||||
data = m_DefaultBlueprintBasicData;
|
||||
}
|
||||
var obj = bpItem.m_Variables;
|
||||
obj.Set("entity", data.Entity);
|
||||
obj.Set("target", data.Target);
|
||||
obj.Set("owner", data.Owner);
|
||||
obj.Set("data", data);
|
||||
}
|
||||
private BlueprintPoolItem CreateBlueprint(string name)
|
||||
{
|
||||
var bpNew = Create<BlueprintPoolItem>(name, (item) =>
|
||||
{
|
||||
var go = new GameObject(name);
|
||||
var flowMacro = EnsureGetBulletFlowMacro(name);
|
||||
var flowMachine = go.AddComponent<FlowMachine>();
|
||||
flowMachine.nest.SwitchToMacro(flowMacro);
|
||||
item.m_FlowMachine = flowMachine;
|
||||
item.m_Variables = Variables.Object(go);
|
||||
go.transform.SetParent(BlueprintPoolManager.Instance.Root.transform);
|
||||
item.m_GameObject = go;
|
||||
});
|
||||
return bpNew;
|
||||
}
|
||||
|
||||
private FlowMacro EnsureGetBulletFlowMacro(string path)
|
||||
{
|
||||
var pathReal = $"{m_BlueprintPath}{path}";
|
||||
return Util.Load<FlowMacro>(pathReal);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public abstract partial class Util
|
||||
{
|
||||
public static void RunBp(string name, string trigger)
|
||||
{
|
||||
BlueprintPoolManager.Instance.Run(name, trigger, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bed465de634e5274bb85435edf717459
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9989848984d77204bb8dece4da2402f0
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,52 +0,0 @@
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
[UnitTitle("创建Buff")]
|
||||
[UnitSubtitle("NodeAddBuff")]
|
||||
[UnitCategory("Game-Buff")]
|
||||
public class NodeAddBuff : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueInput owner;
|
||||
public ValueInput buffId;
|
||||
public ValueInput timeS;
|
||||
public ValueInput isCover;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
owner = ValueInput<int>("owner");
|
||||
buffId = ValueInput<string>("buffId");
|
||||
timeS = ValueInput<float>("timeS");
|
||||
isCover = ValueInput<bool>("isCover");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var o = flow.GetValue<int>(owner);
|
||||
var b = flow.GetValue<string>(buffId);
|
||||
var t = flow.GetValue<float>(timeS);
|
||||
var c = flow.GetValue<bool>(isCover);
|
||||
Util.AddBuff(e, o, b, t);
|
||||
}
|
||||
}
|
||||
[UnitTitle("硬直计数")]
|
||||
[UnitSubtitle("NodeEntityStun")]
|
||||
[UnitCategory("Game-Buff")]
|
||||
public class NodeEntityStun : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueInput count;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
count = ValueInput<int>("count");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var c = flow.GetValue<int>(count);
|
||||
Util.AddStunCount(e, c);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c4433931642e3943a8c73538f8a4375
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 119955de947ceca4fb32891023a3db14
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,5 +0,0 @@
|
||||
namespace Game
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a237841034b1f54080525444520ed39
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cce4361e849d30a4dbeafc3c443a01be
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 47eb993fd915b834b80dd6503c9dac93
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,49 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
/// <summary>
|
||||
/// Node基类 项目内所有节点继承自该类
|
||||
/// 有一个ControlInput的默认节点
|
||||
/// </summary>
|
||||
public class NodeBase : Unit
|
||||
{
|
||||
public ControlInput input { get; protected set; }
|
||||
protected BlueprintBasicData data;
|
||||
protected List<int> tempListInt = new List<int>();
|
||||
protected override void Definition()
|
||||
{
|
||||
input = ControlInput("", Enter);
|
||||
OnDefinition();
|
||||
}
|
||||
private ControlOutput Enter(Flow flow)
|
||||
{
|
||||
data = Variables.Object(flow.stack.gameObject).Get<BlueprintBasicData>("data");
|
||||
return OnEnter(flow);
|
||||
}
|
||||
protected virtual void OnDefinition() { }
|
||||
protected virtual ControlOutput OnEnter(Flow flow) { return null; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 有一个ControlInput和一个ControlOutput的默认节点
|
||||
/// </summary>
|
||||
public class NodeDefault : NodeBase
|
||||
{
|
||||
public ControlOutput output { get; protected set; }
|
||||
protected override void OnDefinition()
|
||||
{
|
||||
output = ControlOutput("");
|
||||
Def();
|
||||
}
|
||||
protected override ControlOutput OnEnter(Flow flow)
|
||||
{
|
||||
Run(flow);
|
||||
return output;
|
||||
}
|
||||
protected virtual void Def() { }
|
||||
protected virtual void Run(Flow flow) { }
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a54981af9ca246d419e724a75b4050b2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,183 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
|
||||
[UnitTitle("测试打印")]
|
||||
[UnitSubtitle("NodeDebugLog")]
|
||||
[UnitCategory("Game-Common")]
|
||||
public class NodeDebugLog : NodeDefault
|
||||
{
|
||||
public ValueInput log { get; private set; }
|
||||
protected override void Def()
|
||||
{
|
||||
log = ValueInput<object>("log");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
Util.Print(flow.GetValue<object>(log));
|
||||
}
|
||||
}
|
||||
[UnitTitle("射线检测(1->2)")]
|
||||
[UnitSubtitle("NodeRayCast")]
|
||||
[UnitCategory("Game-Common")]
|
||||
public class NodeRayCast : NodeDefault
|
||||
{
|
||||
public ValueInput pos1;
|
||||
public ValueInput pos2;
|
||||
public ValueOutput target;
|
||||
protected override void Def()
|
||||
{
|
||||
pos1 = ValueInput<Vector3>("p1");
|
||||
pos2 = ValueInput<Vector3>("p2");
|
||||
target = ValueOutput<List<int>>("target");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var entity = Util.GetEntity(data.Entity);
|
||||
var p1 = flow.GetValue<Vector3>(pos1);
|
||||
var p2 = flow.GetValue<Vector3>(pos2);
|
||||
var dir = p2 - p1;
|
||||
tempListInt.Clear();
|
||||
if (dir.magnitude != 0)
|
||||
{
|
||||
var hitInfos = Physics.RaycastAll(p1, dir, dir.magnitude, layerMask: UtilPhysics.LayerMaskHit);
|
||||
foreach (var hitInfo in hitInfos)
|
||||
{
|
||||
var hitGo = hitInfo.transform.gameObject;
|
||||
var hitEntityId = 0;
|
||||
EntityInfo info;
|
||||
if (hitGo.TryGetComponent<EntityInfo>(out info))
|
||||
{
|
||||
hitEntityId = info.entityId;
|
||||
if (Util.GetEntity(hitEntityId).Team() == entity.Team())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
tempListInt.Add(hitEntityId);
|
||||
}
|
||||
}
|
||||
}
|
||||
flow.SetValue(target, tempListInt);
|
||||
}
|
||||
}
|
||||
[UnitTitle("Box检测(1->2)")]
|
||||
[UnitSubtitle("NodeBoxCast")]
|
||||
[UnitCategory("Game-Common")]
|
||||
public class NodeBoxCast : NodeDefault
|
||||
{
|
||||
public ValueInput pos1;
|
||||
public ValueInput pos2;
|
||||
public ValueInput width;
|
||||
public ValueInput height;
|
||||
public ValueOutput target;
|
||||
protected override void Def()
|
||||
{
|
||||
pos1 = ValueInput<Vector3>("p1");
|
||||
pos2 = ValueInput<Vector3>("p2");
|
||||
width = ValueInput<float>("width");
|
||||
height = ValueInput<float>("height");
|
||||
target = ValueOutput<List<int>>("target");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var entity = Util.GetEntity(data.Entity);
|
||||
var p1 = flow.GetValue<Vector3>(pos1);
|
||||
var p2 = flow.GetValue<Vector3>(pos2);
|
||||
var w = flow.GetValue<float>(width);
|
||||
var h = flow.GetValue<float>(height);
|
||||
var dir = p2 - p1;
|
||||
tempListInt.Clear();
|
||||
if (dir.magnitude != 0)
|
||||
{
|
||||
var center = (p2 + p1) / 2;
|
||||
var halfExtents = new Vector3(w / 2, h / 2, dir.magnitude);
|
||||
var rot = Quaternion.FromToRotation(Vector3.right, dir);
|
||||
var hitInfos = Physics.BoxCastAll(center, halfExtents, dir, rot, 0, layerMask: UtilPhysics.LayerMaskHit);
|
||||
Util.DrawBox(center, halfExtents, dir, Color.green);
|
||||
foreach (var hitInfo in hitInfos)
|
||||
{
|
||||
var hitGo = hitInfo.transform.gameObject;
|
||||
var hitEntityId = 0;
|
||||
EntityInfo info;
|
||||
if (hitGo.TryGetComponent<EntityInfo>(out info))
|
||||
{
|
||||
hitEntityId = info.entityId;
|
||||
if (Util.GetEntity(hitEntityId).Team() == entity.Team())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
tempListInt.Add(hitEntityId);
|
||||
}
|
||||
}
|
||||
}
|
||||
flow.SetValue(target, tempListInt);
|
||||
}
|
||||
}
|
||||
// [UnitTitle("造成伤害")]
|
||||
// [UnitSubtitle("NodeDamage")]
|
||||
// [UnitCategory("Game-Common")]
|
||||
// public class NodeDamage : NodeDefault
|
||||
// {
|
||||
// public ValueInput target;
|
||||
// public ValueInput damageRate;
|
||||
// public ValueInput hitDir;
|
||||
// public ValueInput isFlow;
|
||||
// public ValueInput hitId;
|
||||
// public ValueInput isSkill;
|
||||
// public ValueInput performance;
|
||||
// protected override void Def()
|
||||
// {
|
||||
// target = ValueInput<int>("entity");
|
||||
// damageRate = ValueInput<float>("damageRate");
|
||||
// hitDir = ValueInput<Vector3>("hitDir");
|
||||
// isFlow = ValueInput<bool>("isFlow");
|
||||
// hitId = ValueInput<int>("hitId");
|
||||
// isSkill = ValueInput<bool>("isSkill");
|
||||
// performance = ValueInput<ESKillPerformance>("performance");
|
||||
// }
|
||||
// protected override void Run(Flow flow)
|
||||
// {
|
||||
// var t = flow.GetValue<int>(target);
|
||||
// var d = flow.GetValue<float>(damageRate);
|
||||
// var hd = flow.GetValue<Vector3>(hitDir);
|
||||
// var ifw = flow.GetValue<bool>(isFlow);
|
||||
// var hid = flow.GetValue<int>(hitId);
|
||||
// var s = flow.GetValue<bool>(isSkill);
|
||||
// var p = flow.GetValue<ESKillPerformance>(performance);
|
||||
// var hitKey = new Tuple<int, int>(t, hid);
|
||||
// var owner = Util.GetEntity(data.owner);
|
||||
// var targetEntity = Util.GetEntity(t);
|
||||
// var hitInfo = new SkillHitInfo()
|
||||
// {
|
||||
// skillParam = new AttackBehaviour()
|
||||
// {
|
||||
// isFlow = ifw,
|
||||
// damageRate = d,
|
||||
// hitId = hid,
|
||||
// },
|
||||
// ownerEntity = owner.ID(),
|
||||
// hitEntity = t,
|
||||
// hitPos = targetEntity.Pos(),
|
||||
// hitDir = hd,
|
||||
// isRight = true,
|
||||
// isDealed = false,
|
||||
// isSkill = s,
|
||||
// performance = (uint)p,
|
||||
// };
|
||||
// if (s)
|
||||
// {
|
||||
// if (!owner.skill.skillHitInfo.ContainsKey(hitKey))
|
||||
// {
|
||||
// owner.skill.skillHitInfo[hitKey] = hitInfo;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// owner.skill.hitInfo.Add(hitInfo);
|
||||
// }
|
||||
|
||||
// }
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bd6d2e0ad46c4b34f8325b9b0053bb60
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,189 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
[UnitTitle("删除实体")]
|
||||
[UnitSubtitle("NodeDestroyEntity")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeDestroyEntity : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
Util.DestroyEntity(flow.GetValue<int>(entity));
|
||||
}
|
||||
}
|
||||
|
||||
[UnitTitle("实体位置")]
|
||||
[UnitSubtitle("NodeEntityPosition")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeEntityPosition : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueOutput pos;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
pos = ValueOutput<Vector3>("pos");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var p = Util.EntityLogicPos(e);
|
||||
flow.SetValue(pos, p);
|
||||
}
|
||||
}
|
||||
[UnitTitle("实体距离")]
|
||||
[UnitSubtitle("NodeEntityDistance")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeEntityDistance : NodeDefault
|
||||
{
|
||||
public ValueInput entity1;
|
||||
public ValueInput entity2;
|
||||
public ValueOutput distance;
|
||||
protected override void Def()
|
||||
{
|
||||
entity1 = ValueInput<int>("entity1");
|
||||
entity2 = ValueInput<int>("entity2");
|
||||
distance = ValueOutput<float>("distance");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e1 = flow.GetValue<int>(entity1);
|
||||
var e2 = flow.GetValue<int>(entity2);
|
||||
var dist = Util.EntityDistance(e1, e2);
|
||||
flow.SetValue(distance, dist);
|
||||
}
|
||||
}
|
||||
[UnitTitle("实体偏移向量(1->2)")]
|
||||
[UnitSubtitle("NodeEntityOffset")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeEntityOffset : NodeDefault
|
||||
{
|
||||
public ValueInput entity1;
|
||||
public ValueInput entity2;
|
||||
public ValueOutput offset;
|
||||
protected override void Def()
|
||||
{
|
||||
entity1 = ValueInput<int>("entity1");
|
||||
entity2 = ValueInput<int>("entity2");
|
||||
offset = ValueOutput<Vector3>("offset");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e1 = flow.GetValue<int>(entity1);
|
||||
var e2 = flow.GetValue<int>(entity2);
|
||||
var dist = Util.EntityOffset(e1, e2);
|
||||
flow.SetValue(offset, dist);
|
||||
}
|
||||
}
|
||||
[UnitTitle("实体是否浮空")]
|
||||
[UnitSubtitle("NodeEntityInAir")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeEntityInAir : NodeDefault
|
||||
{
|
||||
public ValueInput entity;
|
||||
public ValueOutput inAir;
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
inAir = ValueOutput<bool>("inAir");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var b = Util.EntityInAir(e);
|
||||
flow.SetValue(inAir, b);
|
||||
}
|
||||
}
|
||||
[UnitTitle("移动")]
|
||||
[UnitSubtitle("NodeEntityMove")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeEntityMove : NodeDefault
|
||||
{
|
||||
public ValueInput direction { get; private set; }
|
||||
protected override void Def()
|
||||
{
|
||||
direction = ValueInput<Vector3>("direction");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = data.Entity;
|
||||
var d = flow.GetValue<Vector3>(direction);
|
||||
d = new Vector3(d.x, 0, d.z);
|
||||
Util.EntityMove(e, d);
|
||||
}
|
||||
}
|
||||
[UnitTitle("停止移动")]
|
||||
[UnitSubtitle("NodeEntityStop")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeEntityStop : NodeDefault
|
||||
{
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = data.Entity;
|
||||
Util.EntityStopMove(e);
|
||||
}
|
||||
}
|
||||
[UnitTitle("获取主角")]
|
||||
[UnitSubtitle("NodeGetMaster")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeGetMaster : NodeDefault
|
||||
{
|
||||
public ValueOutput master { get; private set; }
|
||||
protected override void Def()
|
||||
{
|
||||
master = ValueOutput<int>("master");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
flow.SetValue(master, Util.GetMasterID());
|
||||
}
|
||||
}
|
||||
[UnitTitle("获取所有敌人")]
|
||||
[UnitSubtitle("NodeGetAllEnemies")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeGetAllEnemies : NodeDefault
|
||||
{
|
||||
public ValueOutput list { get; private set; }
|
||||
protected override void Def()
|
||||
{
|
||||
list = ValueOutput<List<int>>("list");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
flow.SetValue(list, Util.GetAllEnemies());
|
||||
}
|
||||
}
|
||||
[UnitTitle("按照实体距离排序")]
|
||||
[UnitSubtitle("NodeSortByDistance")]
|
||||
[UnitCategory("Game-Entity")]
|
||||
public class NodeSortByDistance : NodeDefault
|
||||
{
|
||||
public ValueInput entity { get; private set; }
|
||||
public ValueInput list { get; private set; }
|
||||
public ValueOutput result { get; private set; }
|
||||
protected override void Def()
|
||||
{
|
||||
entity = ValueInput<int>("entity");
|
||||
list = ValueInput<List<int>>("list");
|
||||
result = ValueOutput<List<int>>("list");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var e = flow.GetValue<int>(entity);
|
||||
var l = flow.GetValue<List<int>>(list);
|
||||
l.Sort((left, right) =>
|
||||
{
|
||||
return (int)((Util.EntityDistance(e, left) - Util.EntityDistance(e, right)) * 10);
|
||||
});
|
||||
flow.SetValue(result, l);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a698105e561f6f745b77b57961a09e27
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,158 +0,0 @@
|
||||
using System.Collections.Generic;
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
[UnitTitle("空")]
|
||||
[UnitSubtitle("NodeEmpty")]
|
||||
[UnitCategory("Game-Logic")]
|
||||
public class NodeEmpty : NodeDefault
|
||||
{ }
|
||||
|
||||
[UnitTitle("布尔判断")]
|
||||
[UnitSubtitle("NodeIf")]
|
||||
[UnitCategory("Game-Logic")]
|
||||
public class NodeIf : Unit
|
||||
{
|
||||
public ControlInput input;
|
||||
public ControlOutput outputTrue;
|
||||
public ControlOutput outputFalse;
|
||||
public ValueInput condition;
|
||||
protected override void Definition()
|
||||
{
|
||||
|
||||
input = ControlInput("in", Enter);
|
||||
outputTrue = ControlOutput("True");
|
||||
outputFalse = ControlOutput("False");
|
||||
|
||||
condition = ValueInput<bool>("condition");
|
||||
}
|
||||
public ControlOutput Enter(Flow flow)
|
||||
{
|
||||
if (flow.GetValue<bool>(condition))
|
||||
return outputTrue;
|
||||
else
|
||||
{
|
||||
return outputFalse;
|
||||
}
|
||||
}
|
||||
}
|
||||
[UnitTitle("随机检测[0-1]")]
|
||||
[UnitSubtitle("NodeIf")]
|
||||
[UnitCategory("Game-Logic")]
|
||||
public class NodeRandomCheck : Unit
|
||||
{
|
||||
public ControlInput input;
|
||||
public ControlOutput outputTrue;
|
||||
public ControlOutput outputFalse;
|
||||
public ValueInput condition;
|
||||
protected override void Definition()
|
||||
{
|
||||
input = ControlInput("in", Enter);
|
||||
outputTrue = ControlOutput("True");
|
||||
outputFalse = ControlOutput("False");
|
||||
condition = ValueInput<float>("condition", 0);
|
||||
}
|
||||
public ControlOutput Enter(Flow flow)
|
||||
{
|
||||
if (GameRandom.Roll(flow.GetValue<float>(condition)))
|
||||
{
|
||||
return outputTrue;
|
||||
}
|
||||
else
|
||||
{
|
||||
return outputFalse;
|
||||
}
|
||||
}
|
||||
}
|
||||
[UnitTitle("实体排序")]
|
||||
[UnitSubtitle("NodeSort")]
|
||||
[UnitCategory("Game-Logic")]
|
||||
public class NodeSort : Unit
|
||||
{
|
||||
public ControlInput input; //初始进入
|
||||
public ControlOutput output; //最终退出
|
||||
public ControlInput loop; //循环入口
|
||||
public ControlOutput comp; //循环出口
|
||||
public ValueInput list;
|
||||
public ValueInput compResult;
|
||||
public ValueOutput result;
|
||||
public ValueOutput left;
|
||||
public ValueOutput right;
|
||||
private List<int> entityList;
|
||||
private int tempI;
|
||||
private int tempJ;
|
||||
protected override void Definition()
|
||||
{
|
||||
input = ControlInput("in", Enter);
|
||||
output = ControlOutput("out");
|
||||
loop = ControlInput("loop", Loop);
|
||||
comp = ControlOutput("comp");
|
||||
list = ValueInput<List<int>>("list");
|
||||
compResult = ValueInput<int>("compResult");
|
||||
result = ValueOutput<List<int>>("result");
|
||||
left = ValueOutput<int>("left");
|
||||
right = ValueOutput<int>("right");
|
||||
}
|
||||
public ControlOutput Enter(Flow flow)
|
||||
{
|
||||
entityList = flow.GetValue<List<int>>(list);
|
||||
tempI = 0;
|
||||
tempJ = 0;
|
||||
return comp;
|
||||
}
|
||||
public ControlOutput Loop(Flow flow)
|
||||
{
|
||||
tempJ++;
|
||||
if (tempJ >= entityList.Count)
|
||||
{
|
||||
tempI++;
|
||||
if (tempI >= entityList.Count)
|
||||
{
|
||||
flow.SetValue(result, entityList);
|
||||
return output;
|
||||
}
|
||||
tempJ = tempI;
|
||||
return comp;
|
||||
}
|
||||
var compValue = flow.GetValue<int>(compResult);
|
||||
if (compValue > 0)
|
||||
{
|
||||
Swap();
|
||||
}
|
||||
flow.SetValue(left, entityList[tempI]);
|
||||
flow.SetValue(right, entityList[tempJ]);
|
||||
return comp;
|
||||
}
|
||||
public void Swap()
|
||||
{
|
||||
var temp = entityList[tempI];
|
||||
entityList[tempI] = entityList[tempJ];
|
||||
entityList[tempJ] = temp;
|
||||
}
|
||||
}
|
||||
[UnitTitle("列表内容交换")]
|
||||
[UnitSubtitle("NodeSwap")]
|
||||
[UnitCategory("Game-Logic")]
|
||||
public class NodeSwap : NodeDefault
|
||||
{
|
||||
public ValueInput list;
|
||||
public ValueInput indexI;
|
||||
public ValueInput indexJ;
|
||||
protected override void Def()
|
||||
{
|
||||
list = ValueInput<List<int>>("list");
|
||||
indexI = ValueInput<int>("indexI");
|
||||
indexJ = ValueInput<int>("indexJ");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var l = flow.GetValue<List<int>>(list);
|
||||
var i = flow.GetValue<int>(indexI);
|
||||
var j = flow.GetValue<int>(indexJ);
|
||||
var temp = l[i];
|
||||
l[i] = l[j];
|
||||
l[j] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d2b8f98537dba704598581fc81e641da
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,41 +0,0 @@
|
||||
using UnityEngine;
|
||||
using Bolt;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
[UnitTitle("随机角度")]
|
||||
[UnitSubtitle("NodeRandVector")]
|
||||
[UnitCategory("Game-Math")]
|
||||
public class NodeRandVector : NodeDefault
|
||||
{
|
||||
public ValueInput vector { get; private set; }
|
||||
public ValueInput rot { get; private set; }
|
||||
public ValueInput forbidRot { get; private set; }
|
||||
public ValueOutput vectorNew { get; private set; }
|
||||
protected override void Def()
|
||||
{
|
||||
vector = ValueInput<Vector3>("vector");
|
||||
rot = ValueInput<float>("rot");
|
||||
forbidRot = ValueInput<float>("forbidRot");
|
||||
vectorNew = ValueOutput<Vector3>("vectorNew");
|
||||
}
|
||||
protected override void Run(Flow flow)
|
||||
{
|
||||
var rotHalf = flow.GetValue<float>(rot) * 0.5f;
|
||||
var forbidRotHalf = flow.GetValue<float>(forbidRot) * 0.5f;
|
||||
var v = flow.GetValue<Vector3>(vector);
|
||||
var vNew = v;
|
||||
|
||||
if (rotHalf != 0)
|
||||
{
|
||||
if (rotHalf <= forbidRotHalf)
|
||||
{
|
||||
forbidRotHalf = 0;
|
||||
}
|
||||
var rotAdd = GameRandom.Random(forbidRotHalf, rotHalf) * GameRandom.RollSymbol(0.5f);
|
||||
vNew = Quaternion.AngleAxis(rotAdd, Vector3.up) * v;
|
||||
}
|
||||
flow.SetValue(vectorNew, vNew);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8834f3f6fac20f5479763f999c67f6b8
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,83 +1,21 @@
|
||||
using Entitas;
|
||||
using UnityEngine;
|
||||
using Game;
|
||||
|
||||
public class AIDirectorSystem : IExecuteSystem, IInitializeSystem
|
||||
{
|
||||
private LevelPoolItem _curLevel;
|
||||
private LevelNodeMonsterWave _curWave;
|
||||
private float _tickTime;
|
||||
private float _attackRoundTime;
|
||||
private float _attackWaitTime;
|
||||
private int _attackTimes;
|
||||
|
||||
public void Initialize()
|
||||
{
|
||||
}
|
||||
|
||||
public void Execute()
|
||||
{
|
||||
if (Util.IsLevelLoading())
|
||||
{
|
||||
return;
|
||||
}
|
||||
var level = Util.GetCurLevel();
|
||||
var wave = Util.GetCurWave();
|
||||
if (level == null || wave == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (level != _curLevel)
|
||||
{
|
||||
_curLevel = level;
|
||||
return;
|
||||
}
|
||||
if (wave != _curWave)
|
||||
{
|
||||
_curWave = wave;
|
||||
Reset();
|
||||
return;
|
||||
}
|
||||
UpdateAIDirectorBlueprint();
|
||||
|
||||
}
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
_attackRoundTime = 0;
|
||||
_attackWaitTime = 0;
|
||||
_attackTimes = 0;
|
||||
}
|
||||
|
||||
private void UpdateAIDirectorBlueprint()
|
||||
{
|
||||
if (!Util.GetAIDirectorInit())
|
||||
{
|
||||
Util.SetAIDirectorInit();
|
||||
Util.RunBp(GameConst.BlueprintAIDirectorCommon, GameConst.BpEntranceEnter);
|
||||
}
|
||||
_tickTime -= Time.deltaTime;
|
||||
if (_tickTime < 0)
|
||||
{
|
||||
_tickTime = GameConst.AIDirectorTick;
|
||||
Util.RunBp(GameConst.BlueprintAIDirectorCommon, GameConst.BpEntranceUpdate);
|
||||
}
|
||||
if (_attackRoundTime < _curWave.attackRound)
|
||||
{
|
||||
_attackRoundTime += Time.deltaTime;
|
||||
return;
|
||||
}
|
||||
if (_attackWaitTime < _curWave.attackFrequency)
|
||||
{
|
||||
_attackWaitTime += Time.deltaTime;
|
||||
return;
|
||||
}
|
||||
if (_attackTimes >= _curWave.attackTimes)
|
||||
{
|
||||
Reset();
|
||||
return;
|
||||
}
|
||||
_attackTimes++;
|
||||
_attackWaitTime = 0;
|
||||
Util.RunBp(GameConst.BlueprintAIDirectorCommon, GameConst.BpEntranceExecute);
|
||||
var level = Util.GetCurLevel();
|
||||
level.BehaviorTree.Tick();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
using CleverCrow.Fluid.BTs.Trees;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
public class LevelInfo : MonoBehaviour
|
||||
{
|
||||
[SerializeField] public BehaviorTree Tree;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c93a71e503f44f40917c400d8c36ea8e
|
||||
timeCreated: 1685546170
|
||||
@ -0,0 +1,63 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
namespace Game
|
||||
{
|
||||
public interface ILevelMonsterWave
|
||||
{
|
||||
public float GetAttackRound();
|
||||
public float GetAttackFrequency();
|
||||
public int GetAttackTimes();
|
||||
public int GetModuleNum(EAIModuleType type);
|
||||
}
|
||||
|
||||
public class LevelMonsterWaveDefault : ILevelMonsterWave
|
||||
{
|
||||
public float GetAttackRound()
|
||||
{
|
||||
return 2f;
|
||||
}
|
||||
|
||||
public float GetAttackFrequency()
|
||||
{
|
||||
return 0.2f;
|
||||
}
|
||||
|
||||
public int GetAttackTimes()
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
|
||||
public int GetModuleNum(EAIModuleType type)
|
||||
{
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public partial class LevelNodeMonsterWave
|
||||
{
|
||||
public static ILevelMonsterWave Default = new LevelMonsterWaveDefault();
|
||||
|
||||
public float GetAttackRound()
|
||||
{
|
||||
return attackRound;
|
||||
}
|
||||
|
||||
public float GetAttackFrequency()
|
||||
{
|
||||
return attackFrequency;
|
||||
}
|
||||
|
||||
public int GetAttackTimes()
|
||||
{
|
||||
return attackTimes;
|
||||
}
|
||||
|
||||
public int GetModuleNum(EAIModuleType type)
|
||||
{
|
||||
return _numAttackerDict[type];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e5ebdd5045fe4285851c4c727ec74ba8
|
||||
timeCreated: 1685547416
|
||||
Binary file not shown.
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6ecee76f835ec9d4db7d106889dedf73
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8dd14073b0a1cde4cb50ffeba5595d47
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,11 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 69b6a2c878682d74c9227a305df0fabc
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,285 +0,0 @@
|
||||
The Unity Asset Store policy requires that all third-party
|
||||
licenses be contained in a single LICENSES files.
|
||||
This file is auto-generated for this purpose.
|
||||
|
||||
However, you can find a more readable version of each product's
|
||||
acknowledgements in its About window, found in the Tools menu.
|
||||
|
||||
Acknowledgements below:
|
||||
- AQN Parser
|
||||
- Deep Copy
|
||||
- DotNetZip
|
||||
- FatCow Icons
|
||||
- Full Serializer
|
||||
- Iconmonstr Icons
|
||||
- MD4 Managed Implementation
|
||||
- MiscUtil
|
||||
- Reorderable List
|
||||
- SQLite .NET
|
||||
- YamlDotNet
|
||||
|
||||
=============================
|
||||
|
||||
AQN Parser
|
||||
Copyright © 2013 Christophe Bertrand
|
||||
https://www.codeproject.com/Tips/624300/AssemblyQualifiedName-Parser
|
||||
License: Microsoft Public License
|
||||
|
||||
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
|
||||
|
||||
1. Definitions
|
||||
|
||||
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
|
||||
|
||||
A "contribution" is the original software, or any additions or changes to the software.
|
||||
|
||||
A "contributor" is any person that distributes its contribution under this license.
|
||||
|
||||
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
|
||||
|
||||
2. Grant of Rights
|
||||
|
||||
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
|
||||
|
||||
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
|
||||
|
||||
3. Conditions and Limitations
|
||||
|
||||
(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
|
||||
|
||||
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
|
||||
|
||||
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
|
||||
|
||||
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
|
||||
|
||||
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
|
||||
|
||||
=============================
|
||||
|
||||
Deep Copy
|
||||
Copyright © 2014 Alexey Burtsev
|
||||
https://github.com/Burtsev-Alexey/net-object-deep-copy
|
||||
License: MIT
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.
|
||||
|
||||
=============================
|
||||
|
||||
DotNetZip
|
||||
Copyright © 2017 Ionic
|
||||
https://dotnetzip.codeplex.com/
|
||||
License: Microsoft Public License
|
||||
|
||||
This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
|
||||
|
||||
1. Definitions
|
||||
|
||||
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
|
||||
|
||||
A "contribution" is the original software, or any additions or changes to the software.
|
||||
|
||||
A "contributor" is any person that distributes its contribution under this license.
|
||||
|
||||
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
|
||||
|
||||
2. Grant of Rights
|
||||
|
||||
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
|
||||
|
||||
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
|
||||
|
||||
3. Conditions and Limitations
|
||||
|
||||
(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
|
||||
|
||||
(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
|
||||
|
||||
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
|
||||
|
||||
(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
|
||||
|
||||
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
|
||||
|
||||
=============================
|
||||
|
||||
FatCow Icons
|
||||
Copyright © 2017 FatCow Web Hosting
|
||||
https://www.fatcow.com/free-icons
|
||||
License: Creative Commons Attribution 3.0
|
||||
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
|
||||
|
||||
1. Definitions
|
||||
|
||||
"Collective Work" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with one or more other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License."Derivative Work" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered a Derivative Work for the purpose of this License."Licensor" means the individual, individuals, entity or entities that offers the Work under the terms of this License."Original Author" means the individual, individuals, entity or entities who created the Work."Work" means the copyrightable work of authorship offered under the terms of this License."You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws.
|
||||
|
||||
3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
|
||||
|
||||
to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works;to create and reproduce Derivative Works provided that any such Derivative Work, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified.";;to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works;to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works.For the avoidance of doubt, where the Work is a musical composition:
|
||||
|
||||
Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or, in the event that Licensor is a member of a performance rights society (e.g. ASCAP, BMI, SESAC), via that society, royalties for the public performance or public digital performance (e.g. webcast) of the Work.Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights agency or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work ("cover version") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions).Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions).The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved.
|
||||
|
||||
4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
|
||||
|
||||
You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of a recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. When You distribute, publicly display, publicly perform, or publicly digitally perform the Work, You may not impose any technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by Section 4(b), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by Section 4(b), as requested.If You distribute, publicly display, publicly perform, or publicly digitally perform the Work (as defined in Section 1 above) or any Derivative Works (as defined in Section 1 above) or Collective Works (as defined in Section 1 above), You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author and/or Licensor designate another party or parties (e.g. a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and, consistent with Section 3(b) in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(b) may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear, if a credit for all contributing authors of the Derivative Work or Collective Work appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.5. Representations, Warranties and Disclaimer
|
||||
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND ONLY TO THE EXTENT OF ANY RIGHTS HELD IN THE LICENSED WORK BY THE LICENSOR. THE LICENSOR MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MARKETABILITY, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. Termination
|
||||
|
||||
This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works (as defined in Section 1 above) or Collective Works (as defined in Section 1 above) from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.8. Miscellaneous
|
||||
|
||||
Each time You distribute or publicly digitally perform the Work (as defined in Section 1 above) or a Collective Work (as defined in Section 1 above), the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
|
||||
|
||||
=============================
|
||||
|
||||
Full Serializer
|
||||
Copyright © 2017 Jacob Dufault
|
||||
https://www.fatcow.com/free-icons
|
||||
License: MIT
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.
|
||||
|
||||
=============================
|
||||
|
||||
Iconmonstr Icons
|
||||
Author: Alexander Kahlkopf
|
||||
https://iconmonstr.com
|
||||
|
||||
This license agreement (the “Agreement”) sets forth the terms by which Alexander Kahlkopf, the owner of iconmonstr (the “Licensor”), shall provide access to certain Work (defined below) to you (the “Licensee”, “you” or “your”). This Agreement regulates the free use of the icons, fonts, images and other media content (collectively, the “Work”), which is made available via the website iconmonstr.com (the “Website”). By downloading or copying a Work, you agree to be bound by the following terms and conditions.
|
||||
|
||||
1. Grant of Rights
|
||||
|
||||
The Works on the Website are copyrighted property of Licensor. Licensor hereby grants Licensee a perpetual, non-exclusive, non-transferrable single-user license for the use of the Work based on the conditions of this Agreement. You agree that the Work serves as part of the design and is not the basis or main component of the product, template or application distributed by the Licensee. Furthermore, you agree not to sell, redistribute, sublicense, share or otherwise transfer the Work to other people or entities.
|
||||
|
||||
2. Permitted Uses
|
||||
|
||||
Licensee may use the Work in non-commercial and commercial projects, services or products without attribution.Licensee may use the Work for any illustrative purposes in any media, including, but not limited to, websites, web banners, newsletters, PDF documents, blogs, emails, slideshows, TV and video presentations, smartphones, splash screens, movies, magazine articles, books, advertisements, brochures, document illustrations, booklets, billboards, business cards, packages, etc.Licensee may use the Work in template or application without attribution; provided, however, that the Work serves as part of the design and is not the basis or main component of the product, template or application distributed by Licensee and is not used contrary to the terms and conditions of this Agreement.Licensee may adapt or change the Work according to his or her requirements.
|
||||
|
||||
3. Prohibited Uses
|
||||
|
||||
Licensee may not sell, redistribute, sublicense, share or otherwise transfer the Work to other people or entities.Licensee may not use the Work as part of a logo, trademark or service mark.Licensee may not use the Work for pornographic, infringing, defamatory, racist or religiously offensive illustrations.
|
||||
|
||||
4. Additional Information on Rights
|
||||
|
||||
Certain Works, such as logos or brands, are subject to copyright and require the agreement of a third party for the assignment of these rights. Licensee is responsible for providing all rights, agreements, and licenses for the use of the Work.
|
||||
|
||||
5. Termination
|
||||
|
||||
This Agreement shall automatically terminate without notice if you do not comply with the terms or conditions specified in this Agreement. If you yourself wish to terminate this Agreement, destroy the Work, all copies and derivatives of the Work and any materials related to it.
|
||||
|
||||
6. Indemnification
|
||||
|
||||
You agree to indemnify Licensor for any and all claims, liability performances, damages, costs (including attorney fees) or other liabilities that are caused by or related to a breach of this Agreement, which are caused by the use of the Website or Work, by the non-compliance of the use restrictions of a Work or which are caused by the claims of third parties regarding the use of a Work.
|
||||
|
||||
7. Warranty and Liability
|
||||
|
||||
The Website and the Works are provided “as is.” Licensor does not accept any warranty or liability regarding a Work, the Website, the accuracy of the information or rights described therein or the licenses, which are subject to this Agreement. Licensor is not liable for damages, costs, losses or claims incurred by you, another person or entity by the use of the Website or the Works.
|
||||
|
||||
=============================
|
||||
|
||||
MD4 Managed Implementation
|
||||
Copyright © 2005 Motus Technologies Inc., Novell, Inc
|
||||
https://github.com/mono/mono/blob/master/mcs/class/Mono.Security/Mono.Security.Cryptography/MD4Managed.cs
|
||||
|
||||
Author:Sebastien Pouliot (sebastien@ximian.com)
|
||||
|
||||
(C) 2003 Motus Technologies Inc. (http://www.motus.com)Copyright (C) 2004-2005,2010 Novell, Inc (http://www.novell.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the"Software"), to deal in the Software without restriction, includingwithout limitation the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell copies of the Software, and topermit persons to whom the Software is furnished to do so, subject tothe following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall beincluded in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE ANDNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BELIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTIONOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTIONWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
=============================
|
||||
|
||||
MiscUtil
|
||||
Copyright © 2008 Jon Skeet
|
||||
http://www.yoda.arachsys.com/csharp/miscutil/index.html
|
||||
|
||||
"Miscellaneous Utility Library" Software Licence
|
||||
|
||||
Version 1.0
|
||||
|
||||
Copyright (c) 2004-2008 Jon Skeet and Marc Gravell.All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditionsare met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyrightnotice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyrightnotice, this list of conditions and the following disclaimer in thedocumentation and/or other materials provided with the distribution.
|
||||
|
||||
3. The end-user documentation included with the redistribution, ifany, must include the following acknowledgment:
|
||||
|
||||
"This product includes software developed by Jon Skeetand Marc Gravell. Contact skeet@pobox.com, or see http://www.pobox.com/~skeet/)."
|
||||
|
||||
Alternately, this acknowledgment may appear in the software itself,if and wherever such third-party acknowledgments normally appear.
|
||||
|
||||
4. The name "Miscellaneous Utility Library" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact skeet@pobox.com.
|
||||
|
||||
5. Products derived from this software may not be called "Miscellaneous Utility Library", nor may "Miscellaneous Utility Library"appear in their name, without prior written permission of Jon Skeet.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIEDWARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.IN NO EVENT SHALL JON SKEET BE LIABLE FOR ANY DIRECT, INDIRECT,INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICTLIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING INANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
=============================
|
||||
|
||||
Reorderable List
|
||||
Author: Rotorz Limited
|
||||
https://bitbucket.org/rotorz/reorderable-list-editor-field-for-unity
|
||||
License: MIT
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.
|
||||
|
||||
=============================
|
||||
|
||||
SQLite .NET
|
||||
Copyright © 2014 Roberto Huertas
|
||||
https://github.com/codecoding/SQLite4Unity3d
|
||||
License: MIT
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.
|
||||
|
||||
=============================
|
||||
|
||||
YamlDotNet
|
||||
Author: Antoine Aubry
|
||||
http://aaubry.net/pages/yamldotnet.html
|
||||
License: MIT
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf356c1e3cc166e4db6ffd159585422f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,7 +0,0 @@
|
||||
Thank you for choosing Bolt!
|
||||
|
||||
To get started, import the package that matches your project's scripting runtime version (.NET 3 or 4).
|
||||
|
||||
If you're not sure, use [ Tools > Install Bolt ].
|
||||
|
||||
You can safely delete the "Bolt Install" folder after importing the package.
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 255200306d08e664d8e0f9f7f737426b
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8f7548e63c4ee6e45a2bb0a8fe03dacd
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cdc0d6bb66b201d4283a6572fce71c8e
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1 +0,0 @@
|
||||
TARGET_INCLUDE_ALL
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fbee70d634846f24c89fb53e11703d9f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@ -1,103 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 77bfc02ce8d713f4e819be6d4ebdc3ea
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Lumin: Lumin
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Nintendo Switch: Switch
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
PS4: PS4
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Linux
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: LinuxUniversal
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
WebGL: WebGL
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
- first:
|
||||
XboxOne: XboxOne
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
iPhone: iOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
tvOS: tvOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1 +0,0 @@
|
||||
GUID_7314928a14330c04fb980214791646e9;TARGET_INCLUDE_EDITOR;RELEASE;NET_4_6
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6632b1d377cddc14ab6cadb2864679a9
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@ -1,34 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7314928a14330c04fb980214791646e9
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any: ''
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData: ''
|
||||
assetBundleName: ''
|
||||
assetBundleVariant: ''
|
||||
...
|
||||
@ -1,28 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Bolt.Core.Editor</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="P:Bolt.BoltCoreConfiguration.dimInactiveNodes">
|
||||
<summary>
|
||||
Whether inactive graph nodes should be dimmed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltCoreConfiguration.dimIncompatibleNodes">
|
||||
<summary>
|
||||
Whether incompatible graph nodes should be dimmed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltCoreConfiguration.showVariablesHelp">
|
||||
<summary>
|
||||
Whether the header help panel should be shown in the variables window.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltCoreConfiguration.createSceneVariables">
|
||||
<summary>
|
||||
Whether the scene variables object should be created automatically.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97c64f35b1f7d4242a3c82839c63d105
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1 +0,0 @@
|
||||
GUID_c8d0ad23af520fe46aabe2b1fecf6462;TARGET_INCLUDE_ALL;TARGET_BACKEND_IL2CPP;RELEASE;NET_4_6
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6bc196351376cd34785cb86df95c3df4
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@ -1,117 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8d0ad23af520fe46aabe2b1fecf6462
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap:
|
||||
Bolt.AnimatorMessageListener: {fileID: 2800000, guid: 21763ada12b1de54a9de03382ecdf3fe,
|
||||
type: 3}
|
||||
Bolt.GlobalMessageListener: {fileID: 2800000, guid: 0129cf6bb23df2f41824eda97d16ee6e,
|
||||
type: 3}
|
||||
Bolt.SceneVariables: {fileID: 2800000, guid: 85b733ff25d1eee479a6d510562bd0b2,
|
||||
type: 3}
|
||||
Bolt.UnityMessageListener: {fileID: 2800000, guid: 310bebb331cf47f42b7f0b57b1f5bfcf,
|
||||
type: 3}
|
||||
Bolt.VariablesAsset: {fileID: 2800000, guid: 7e1f811eb716b3844aad1127122172ed,
|
||||
type: 3}
|
||||
Bolt.VariablesSaver: {fileID: 2800000, guid: c49720c31a0991d48aa5d1fcf9d6d1a6,
|
||||
type: 3}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Android: Android
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
ScriptingBackend: Il2Cpp
|
||||
- first:
|
||||
Any:
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Lumin: Lumin
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Nintendo Switch: Switch
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
PS4: PS4
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Linux
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Linux64
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: LinuxUniversal
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: OSXUniversal
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Win
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Standalone: Win64
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
WebGL: WebGL
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
ScriptingBackend: Il2Cpp
|
||||
- first:
|
||||
XboxOne: XboxOne
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
iPhone: iOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
- first:
|
||||
tvOS: tvOS
|
||||
second:
|
||||
enabled: 1
|
||||
settings: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,46 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Bolt.Core.Runtime</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="F:Bolt.VariableKind.Flow">
|
||||
<summary>
|
||||
Temporary variables local to the execution flow.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Bolt.VariableKind.Graph">
|
||||
<summary>
|
||||
Variables local to the current graph.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Bolt.VariableKind.Object">
|
||||
<summary>
|
||||
Variables shared across the current game object.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Bolt.VariableKind.Scene">
|
||||
<summary>
|
||||
Variables shared across the current scene.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Bolt.VariableKind.Application">
|
||||
<summary>
|
||||
Variables shared across scenes.
|
||||
These will be reset when the application quits.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Bolt.VariableKind.Saved">
|
||||
<summary>
|
||||
Variables that persist even after the application quits.
|
||||
Unity object references are not supported.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Bolt.VariablesSaver">
|
||||
<summary>
|
||||
Listens to the OnApplicationQuit on OnApplicationPause
|
||||
hooks to trigger the serialization of saved variables into PlayerPrefs.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5d69e9485c470d44d91bf2c782522f2f
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1 +0,0 @@
|
||||
GUID_6cb65bfc2ee1c854ca1382175f3aba91;TARGET_INCLUDE_EDITOR;RELEASE;NET_4_6
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 685819a806c873e4781f1082512fafda
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@ -1,34 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6cb65bfc2ee1c854ca1382175f3aba91
|
||||
PluginImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
iconMap: {}
|
||||
executionOrder: {}
|
||||
defineConstraints: []
|
||||
isPreloaded: 0
|
||||
isOverridable: 0
|
||||
isExplicitlyReferenced: 0
|
||||
validateReferences: 1
|
||||
platformData:
|
||||
- first:
|
||||
Any: ''
|
||||
second:
|
||||
enabled: 0
|
||||
settings: {}
|
||||
- first:
|
||||
Editor: Editor
|
||||
second:
|
||||
enabled: 1
|
||||
settings:
|
||||
DefaultValueInitialized: true
|
||||
- first:
|
||||
Windows Store Apps: WindowsStoreApps
|
||||
second:
|
||||
enabled: 0
|
||||
settings:
|
||||
CPU: AnyCPU
|
||||
userData: ''
|
||||
assetBundleName: ''
|
||||
assetBundleVariant: ''
|
||||
...
|
||||
@ -1,58 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Bolt.Flow.Editor</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.updateUnitsAutomatically">
|
||||
<summary>
|
||||
(Experimental) Whether the unit database should be incrementally updated
|
||||
whenever a codebase change is detected.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.predictPotentialNullReferences">
|
||||
<summary>
|
||||
Whether predictive debugging should warn about null value inputs.
|
||||
Note that in some cases, this setting may report false positives.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.predictPotentialMissingComponents">
|
||||
<summary>
|
||||
Whether predictive debugging should warn about missing components.
|
||||
Note that in some cases, this setting may report false positives.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.showConnectionValues">
|
||||
<summary>
|
||||
Whether values should be shown on flow graph connections.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.predictConnectionValues">
|
||||
<summary>
|
||||
Whether predictable values should be shown on flow graph connections.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.hidePortLabels">
|
||||
<summary>
|
||||
Whether labels should be hidden on ports when the value can be deduced from the context.
|
||||
Disabling will make units more explicit but less compact.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.animateControlConnections">
|
||||
<summary>
|
||||
Whether active control connections should show a droplet animation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.animateValueConnections">
|
||||
<summary>
|
||||
Whether active value connections should show a droplet animation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Bolt.BoltFlowConfiguration.skipContextMenu">
|
||||
<summary>
|
||||
When active, right-clicking a flow graph will skip the context menu
|
||||
and instantly open the fuzzy finder. To open the context menu, hold shift.
|
||||
</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4e94c3cd4ea068498373aae6135243d
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1 +0,0 @@
|
||||
GUID_a040fb66244a7f54289914d98ea4ef7d;TARGET_INCLUDE_ALL;TARGET_BACKEND_IL2CPP;RELEASE;NET_4_6
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue