An open API service indexing awesome lists of open source software.

https://github.com/kuritaro1122/entityactioncon

[Unity] Entityに命令を付与し、非同期的に逐次実行する。移動やショット発射などの基本テンプレートを同封。
https://github.com/kuritaro1122/entityactioncon

csharp unity unity-scripts

Last synced: 3 months ago
JSON representation

[Unity] Entityに命令を付与し、非同期的に逐次実行する。移動やショット発射などの基本テンプレートを同封。

Awesome Lists containing this project

README

          

[※ObjectOrderController <- 新バージョン](https://github.com/kuritaro1122/ObjectOrderController)

[EntityActionCon_Nodeはこちら](/README_node.md)

# EntityActionCon

Entityに命令を付与し、非同期的に逐次実行する。\
[FunctionExecutor](https://github.com/kuritaro1122/FunctionExecuter)の派生プログラムです。

# Requirement

* UnityEngine
* System
* System.Collections
* [FunctionExecutor](https://github.com/kuritaro1122/FunctionExecuter)
* [EntityBehaviour.Status](https://github.com/kuritaro1122/EntityStatus)

# Usage

```cs
GameObject target;
EntityActionCon actionCon = target.ComponentEntityAction(); //Add or GetComponent
actionCon.Set(
// Write the function you want to execute.
// new EA_Function1(),
// new EA_Function2(),
// ...
).BeginAction();
```

## EA_Functions
* EA_Function_Standard
```cs
A_WaitForSeconds(float time)
A_WaitUntil(System.Func condition)
A_Destroy(GameObject gameObject = null)
A_DebugLog(string message)
A_Action(System.Action action)
A_Action(System.Action action)
A_Coroutine(bool asyn, System.Func enumerator)
A_Coroutine(bool asyn, System.Func enumerator)

A_ChainFunction(bool asyn, params EA_IFunction[] functions)
A_LoopFunction(bool asyn, Func condition, params EA_IFunction[] functions)
A_LoopFunction(bool asyn, int count, params EA_IFunction[] functions)
A_LoopFunction(bool asyn, Func condition, int count, bool and, params EA_IFunction[] functions)
```
* EA_Function_Entity3D
```cs
A_Movement(bool asyn, Vector3 pos, float duration)
A_Movement(bool asyn, Vector3 pos, float duration, bool addPos = false, bool speedBase = false)
A_Movement(bool asyn, Vector3? beginPos, Vector3 pos, float duration, bool addPos = false, bool speedBase = false)
A_MovementSin(bool asyn, Vector3 pos, float amplitude, float frequency, float time, Vector3 upwards)
A_MovementSin(bool asyn, Vector3? beginPos, Vector3 pos, float amplitude, float frequency, float time, Vector3 upwards)
A_Shot(bool asyn, GameObject ShotPrefab, int num, float span, params LaunchInfo[] launchInfos)
```
* [EA_Function_Curve](https://github.com/kuritaro1122/EA_Functions_Curve/)
```
A_MovementCurve(bool asyn, ICurve curve, float duration, bool speedBase = false, bool localPos = false, bool localRot = false)
```

## EA_IFunction (Interface)
```cs
IEnumerator IGetFunction(IFunctionExecutor executor)
bool IGetAsyn()
void ISetEntityActionCon(IEntityActionCon actionCon)
```

# Contains

## Public Variable
```cs
bool Running { get; }
```cs
## Public Function
```cs
FunctionExecutor Set(params EA_IFunction[] functions)
FunctionExecutor Set(params FE_IFunction[] functions)
FunctionExecutor ResetAll()
Coroutine BeginAction()
MonoBehaviour IGetMonoBehaviour()
EntityStatus IGetEntityStatus()
RigidBody IGetRigidBody()
```

# Note

* bool asynをtrueにすると、前の命令の終了を待たずに実行されます。
* 新たな命令を追加したい場合には、A_ActionやA_Coroutineを使うか、EA_IFunctionを継承したクラスを作ってください。

# License

"EntityActionCon" is under [MIT license](https://en.wikipedia.org/wiki/MIT_License).