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に命令を付与し、非同期的に逐次実行する。移動やショット発射などの基本テンプレートを同封。
- Host: GitHub
- URL: https://github.com/kuritaro1122/entityactioncon
- Owner: kuritaro1122
- License: mit
- Created: 2021-10-28T13:00:52.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-13T08:10:39.000Z (over 3 years ago)
- Last Synced: 2025-02-25T08:37:45.085Z (over 1 year ago)
- Topics: csharp, unity, unity-scripts
- Language: C#
- Homepage:
- Size: 70.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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).