From 4eab7d1652b6552084cfef4ee727ac9997a2aeb8 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Thu, 22 Oct 2020 15:20:14 +0300 Subject: [PATCH 01/23] first commit --- Assets/Scripts/To_Refactoring/Character/Weapons.meta | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 Assets/Scripts/To_Refactoring/Character/Weapons.meta diff --git a/Assets/Scripts/To_Refactoring/Character/Weapons.meta b/Assets/Scripts/To_Refactoring/Character/Weapons.meta deleted file mode 100644 index ed151ea9e..000000000 --- a/Assets/Scripts/To_Refactoring/Character/Weapons.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 3f3aa28c519cc714eabee8aeb10e70f9 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: From d569db379d21f21caa5598ed2aa14a433682e9d3 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Thu, 22 Oct 2020 16:20:21 +0300 Subject: [PATCH 02/23] Add MVC classes for butterfly --- Assets/Resources/Data/ButterflyData.asset | 14 ++++++ .../Resources/Data/ButterflyData.asset.meta | 8 ++++ Assets/Scripts/ContextTest/MVC/Butterfly.meta | 8 ++++ .../MVC/Butterfly/ButterflyController.cs | 45 +++++++++++++++++++ .../MVC/Butterfly/ButterflyController.cs.meta | 11 +++++ .../MVC/Butterfly/ButterflyData.cs | 13 ++++++ .../MVC/Butterfly/ButterflyData.cs.meta | 11 +++++ .../Butterfly/ButterflyInitilizeController.cs | 38 ++++++++++++++++ .../ButterflyInitilizeController.cs.meta | 11 +++++ .../MVC/Butterfly/ButterflyModel.cs | 18 ++++++++ .../MVC/Butterfly/ButterflyModel.cs.meta | 11 +++++ .../MVC/Butterfly/ButterflyStruct.cs | 13 ++++++ .../MVC/Butterfly/ButterflyStruct.cs.meta | 11 +++++ Assets/Scripts/Contexts/GameContext.cs | 1 + .../BaseControllers/MainControllers.cs | 12 +++-- Assets/Scripts/Data/Data.cs | 14 ++++++ 16 files changed, 235 insertions(+), 4 deletions(-) create mode 100644 Assets/Resources/Data/ButterflyData.asset create mode 100644 Assets/Resources/Data/ButterflyData.asset.meta create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly.meta create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs.meta create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs.meta create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs.meta create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs.meta create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs.meta diff --git a/Assets/Resources/Data/ButterflyData.asset b/Assets/Resources/Data/ButterflyData.asset new file mode 100644 index 000000000..7c599e2bc --- /dev/null +++ b/Assets/Resources/Data/ButterflyData.asset @@ -0,0 +1,14 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9198d4fb6d83f4c44b9a7f026a956854, type: 3} + m_Name: ButterflyData + m_EditorClassIdentifier: diff --git a/Assets/Resources/Data/ButterflyData.asset.meta b/Assets/Resources/Data/ButterflyData.asset.meta new file mode 100644 index 000000000..e6daaf327 --- /dev/null +++ b/Assets/Resources/Data/ButterflyData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5120f52297e32c4aa50bb38456e92b9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly.meta b/Assets/Scripts/ContextTest/MVC/Butterfly.meta new file mode 100644 index 000000000..6bd011431 --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e9dc962257911d646a653355bc3778c8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs new file mode 100644 index 000000000..81b42f1b9 --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -0,0 +1,45 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace BeastHunter +{ + public class ButterflyController: IAwake, IUpdate + { + #region Fields + + private readonly GameContext _context; + + #endregion + + + #region ClassLifeCycle + + public ButterflyController(GameContext context) + { + _context = context; + } + + #endregion + + + #region IUpdate + + public void Updating() + { + + } + + #endregion + + + #region IAwake + + public void OnAwake() + { + + } + + #endregion + } +} diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs.meta b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs.meta new file mode 100644 index 000000000..2737c6301 --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ddcb6ffd04bd86d4eb943b6513a0af81 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs new file mode 100644 index 000000000..8afb54550 --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -0,0 +1,13 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "NewButterfly", menuName = "CreateData/Butterfly", order = 0)] +public class ButterflyData : ScriptableObject +{ + #region Fields + + public ButterflyStruct ButterflyStruct; + + #endregion +} diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs.meta b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs.meta new file mode 100644 index 000000000..b7bfdb03f --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9198d4fb6d83f4c44b9a7f026a956854 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs new file mode 100644 index 000000000..2ae0372a6 --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs @@ -0,0 +1,38 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace BeastHunter +{ + public class ButterflyInitilizeController: IAwake + { + #region Field + + private GameContext _context; + + #endregion + + + #region ClassLifeCycle + + public ButterflyInitilizeController(GameContext context) + { + _context = context; + } + + #endregion + + + #region IAwake + + public void OnAwake() + { + ButterflyData butterflyData = Data.ButterflyData; + GameObject butterflyObject = Object.Instantiate(butterflyData.ButterflyStruct.Prefab); + ButterflyModel butterflyModel = new ButterflyModel(butterflyObject, butterflyData); + _context.ButterflyModel = butterflyModel; + } + + #endregion + } +} diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs.meta b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs.meta new file mode 100644 index 000000000..58f36215d --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1addded9479d78f4ab2c8b3a9fb89822 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs new file mode 100644 index 000000000..bbcf34791 --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace BeastHunter +{ + public class ButterflyModel + { + #region ClassLifeCycle + + public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) + { + + } + + #endregion + } +} diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs.meta b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs.meta new file mode 100644 index 000000000..880e3fd8d --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 312ddfa946eb8b148942120ad73de566 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs new file mode 100644 index 000000000..11a351eaa --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs @@ -0,0 +1,13 @@ +using UnityEngine; +using System; + +[Serializable] +public struct ButterflyStruct +{ + #region Fields + + public GameObject Prefab; + + #endregion +} + diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs.meta b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs.meta new file mode 100644 index 000000000..f211de51d --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b83adf6f2ee790c469af6d880a760e8f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Contexts/GameContext.cs b/Assets/Scripts/Contexts/GameContext.cs index 2be724574..3c6b21169 100644 --- a/Assets/Scripts/Contexts/GameContext.cs +++ b/Assets/Scripts/Contexts/GameContext.cs @@ -9,6 +9,7 @@ public sealed class GameContext : Contexts { #region Fields + public ButterflyModel ButterflyModel; public StartDialogueModel StartDialogueModel; public DialogueSystemModel DialogueSystemModel; public QuestModel QuestModel; diff --git a/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs b/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs index 75138a861..d9c8d5f04 100644 --- a/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs +++ b/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs @@ -6,10 +6,14 @@ public sealed class MainControllers : ControllersStart public MainControllers(GameContext context) { - Add(new SphereInitilizeController(context)); - Add(new InitializeInteractableObjectController(context)); - Add(new SphereController(context)); - Add(new TargetController(context)); + Add(new ButterflyInitilizeController(context)); + Add(new ButterflyController(context)); + + //Example Sphere + //Add(new SphereInitilizeController(context)); + //Add(new InitializeInteractableObjectController(context)); + //Add(new SphereController(context)); + //Add(new TargetController(context)); } #endregion diff --git a/Assets/Scripts/Data/Data.cs b/Assets/Scripts/Data/Data.cs index edc249b06..75b334113 100644 --- a/Assets/Scripts/Data/Data.cs +++ b/Assets/Scripts/Data/Data.cs @@ -6,6 +6,7 @@ namespace BeastHunter { public sealed class Data : ScriptableObject { #region Fields + [SerializeField] private string _butterflyDataPath; [SerializeField] private string _sphereDataPath; [SerializeField] private string _characterDataPath; [SerializeField] private string _startDialogueDataPath; @@ -14,6 +15,7 @@ public sealed class Data : ScriptableObject { private static Data _instance; + private static ButterflyData _butterflyData; private static SphereData _sphereData; private static CharacterData _characterData; private static StartDialogueData _startDialogueData; @@ -36,6 +38,18 @@ public static Data Instance { } } + public static ButterflyData ButterflyData + { + get + { + if (_butterflyData == null) + { + _butterflyData = Load("Data/" + Instance._butterflyDataPath); + } + return _butterflyData; + } + } + public static SphereData SphereData { get { if (_sphereData == null) { From 649caaa8119da9fb3d1586ead9acbcf520e5e176 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Thu, 22 Oct 2020 16:52:26 +0300 Subject: [PATCH 03/23] Save WIP --- .../ContextTest/MVC/Butterfly/ButterflyController.cs | 2 +- .../ContextTest/MVC/Butterfly/ButterflyModel.cs | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index 81b42f1b9..b470d0490 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -27,7 +27,7 @@ public ButterflyController(GameContext context) public void Updating() { - + _context.ButterflyModel.Act(); } #endregion diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index bbcf34791..c4ab2009d 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -14,5 +14,15 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) } #endregion + + + #region Metods + + public void Act() + { + + } + + #endregion } } From ba62ff34e80342df52599bcbf2d179b8e5572233 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Thu, 22 Oct 2020 22:42:52 +0300 Subject: [PATCH 04/23] Add butterfly move --- .../MVC/Butterfly/ButterflyData.cs | 7 +++ .../MVC/Butterfly/ButterflyModel.cs | 48 ++++++++++++++++++- .../MVC/Butterfly/ButterflyStruct.cs | 3 ++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 8afb54550..ea73918bd 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -10,4 +10,11 @@ public class ButterflyData : ScriptableObject public ButterflyStruct ButterflyStruct; #endregion + + + #region Metods + + //методы + + #endregion } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index c4ab2009d..c4b6ba023 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -6,11 +6,30 @@ namespace BeastHunter { public class ButterflyModel { + Vector3 targetPoint; + ButterflyStruct butterflyStruct; + ButterflyData butterflyData; + GameObject butterfly; //потом оставить только конкретные компоненты + + Vector3 Position + { + get + { + return butterfly.transform.position; + } + set + { + butterfly.transform.position = value; + } + } + #region ClassLifeCycle public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) { - + butterfly = butterflyObject; + this.butterflyData = butterflyData; + butterflyStruct = butterflyData.ButterflyStruct; } #endregion @@ -20,9 +39,34 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) public void Act() { - + if (Position != targetPoint) + { + Position = Vector3.MoveTowards(Position, targetPoint, butterflyStruct.Speed); + } + else + { + targetPoint = NextTargetPoint(); + } } #endregion + + void MoveTo(Vector3 point) + { + + } + + Vector3 NextTargetPoint() + { + float x = GetRandomCoord(Position.x); + float y = GetRandomCoord(Position.y); + float z = GetRandomCoord(Position.z); + return new Vector3(x,y,z); + } + + float GetRandomCoord(float currentCoord) + { + return Random.Range(currentCoord - butterflyStruct.MaxDistanceFromCurrentPosition, currentCoord + butterflyStruct.MaxDistanceFromCurrentPosition); + } } } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs index 11a351eaa..b6ec66aab 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs @@ -8,6 +8,9 @@ public struct ButterflyStruct public GameObject Prefab; + public float MaxDistanceFromCurrentPosition; + public float Speed; + #endregion } From c8de99f5f8bbe74b2670d29e7c16733fc08d8032 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Fri, 23 Oct 2020 10:13:19 +0300 Subject: [PATCH 05/23] add data assets refs --- Assets/Resources/Data/ButterflyData.asset | 3 +++ Assets/Resources/Data/Data.asset | 1 + Assets/Scripts/Data/Data.asset | 1 + 3 files changed, 5 insertions(+) diff --git a/Assets/Resources/Data/ButterflyData.asset b/Assets/Resources/Data/ButterflyData.asset index 7c599e2bc..61b15399a 100644 --- a/Assets/Resources/Data/ButterflyData.asset +++ b/Assets/Resources/Data/ButterflyData.asset @@ -12,3 +12,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9198d4fb6d83f4c44b9a7f026a956854, type: 3} m_Name: ButterflyData m_EditorClassIdentifier: + ButterflyStruct: + Prefab: {fileID: 6953022481052749130, guid: 5486b6c5985f0a74dab7aa0548b222f6, + type: 3} diff --git a/Assets/Resources/Data/Data.asset b/Assets/Resources/Data/Data.asset index 79469fc93..01d3c23d2 100644 --- a/Assets/Resources/Data/Data.asset +++ b/Assets/Resources/Data/Data.asset @@ -12,6 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1b31b7596ae2b4a4ab972d36383fc2fb, type: 3} m_Name: Data m_EditorClassIdentifier: + _butterflyDataPath: ButterflyData _sphereDataPath: SphereData _characterDataPath: CharacterData _startDialogueDataPath: StartDialogueData diff --git a/Assets/Scripts/Data/Data.asset b/Assets/Scripts/Data/Data.asset index 79469fc93..8c66c25d4 100644 --- a/Assets/Scripts/Data/Data.asset +++ b/Assets/Scripts/Data/Data.asset @@ -12,6 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1b31b7596ae2b4a4ab972d36383fc2fb, type: 3} m_Name: Data m_EditorClassIdentifier: + _butterflyDataPath: _sphereDataPath: SphereData _characterDataPath: CharacterData _startDialogueDataPath: StartDialogueData From 3fac5a97c6982d5a05441edab1a005bf72e18b79 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Fri, 23 Oct 2020 12:07:54 +0300 Subject: [PATCH 06/23] Add butterfly behaviour --- .../MVC/Butterfly/ButterflyBehaviour.cs | 12 ++++++++++++ .../MVC/Butterfly/ButterflyBehaviour.cs.meta | 11 +++++++++++ .../MVC/Butterfly/ButterflyController.cs | 14 +++++++++++++- .../Controllers/BaseControllers/MainControllers.cs | 1 + Assets/Scripts/Enum/InteractableObjectType.cs | 3 ++- 5 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs create mode 100644 Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs.meta diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs new file mode 100644 index 000000000..1c4f8029f --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BeastHunter +{ + class ButterflyBehaviour: InteractableObjectBehavior + { + } +} diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs.meta b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs.meta new file mode 100644 index 000000000..85f46e17d --- /dev/null +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 588a53f9e308795479b5deafb2409b71 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index b470d0490..791affa71 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -1,4 +1,5 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; using UnityEngine; @@ -37,7 +38,18 @@ public void Updating() public void OnAwake() { + var butterflies = _context.GetTriggers(InteractableObjectType.Butterfly); + foreach (var trigger in butterflies) + { + ButterflyBehaviour butterflyBehaviour = trigger as ButterflyBehaviour; + butterflyBehaviour.OnTriggerEnterHandler += OnTriggerEnter; + } + } + private void OnTriggerEnter(ITrigger trigger, Collider collider) + { + Debug.Log("Butterfly OnTriggerEnter"); + //_context.ButterflyModel.TargetPoint = } #endregion diff --git a/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs b/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs index d9c8d5f04..76e40f7ce 100644 --- a/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs +++ b/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs @@ -7,6 +7,7 @@ public sealed class MainControllers : ControllersStart public MainControllers(GameContext context) { Add(new ButterflyInitilizeController(context)); + Add(new InitializeInteractableObjectController(context)); Add(new ButterflyController(context)); //Example Sphere diff --git a/Assets/Scripts/Enum/InteractableObjectType.cs b/Assets/Scripts/Enum/InteractableObjectType.cs index ed8b0de51..bf07b86db 100644 --- a/Assets/Scripts/Enum/InteractableObjectType.cs +++ b/Assets/Scripts/Enum/InteractableObjectType.cs @@ -9,6 +9,7 @@ public enum InteractableObjectType Player = 4, Enemy = 5, HitBox = 6, - Npc = 7 + Npc = 7, + Butterfly = 8 } } From 6ffa85d1a3f6c2350d2190b2fb064978a6f1c1b5 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Fri, 23 Oct 2020 12:08:12 +0300 Subject: [PATCH 07/23] Add butterfly prefab --- Assets/Resources/Butterfly.prefab | 769 ++++++++++++++++++++++ Assets/Resources/Butterfly.prefab.meta | 7 + Assets/Resources/Data/ButterflyData.asset | 4 +- 3 files changed, 779 insertions(+), 1 deletion(-) create mode 100644 Assets/Resources/Butterfly.prefab create mode 100644 Assets/Resources/Butterfly.prefab.meta diff --git a/Assets/Resources/Butterfly.prefab b/Assets/Resources/Butterfly.prefab new file mode 100644 index 000000000..b613ddbf6 --- /dev/null +++ b/Assets/Resources/Butterfly.prefab @@ -0,0 +1,769 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &545940069974267311 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 894217737310737308} + - component: {fileID: 4883835300943606062} + - component: {fileID: 6147490541358739798} + - component: {fileID: 7783249595321592875} + m_Layer: 0 + m_Name: UpperWing + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &894217737310737308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545940069974267311} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.5, y: 0.4, z: 0} + m_LocalScale: {x: 1.3, y: 1.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 4344415998316415568} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4883835300943606062 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545940069974267311} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6147490541358739798 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545940069974267311} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!135 &7783249595321592875 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 545940069974267311} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1979392025056569226 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7150999648666034000} + - component: {fileID: 3294386859595215342} + - component: {fileID: 9148099870201204941} + - component: {fileID: 1183689340349210764} + m_Layer: 0 + m_Name: TendrilRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7150999648666034000 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1979392025056569226} + m_LocalRotation: {x: 0, y: 0, z: -0.08715578, w: 0.9961947} + m_LocalPosition: {x: 0.06, y: 1.1, z: 0} + m_LocalScale: {x: 0.019999998, y: 0.14999999, z: 0.02} + m_Children: [] + m_Father: {fileID: 5030816804692696162} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -10} +--- !u!33 &3294386859595215342 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1979392025056569226} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &9148099870201204941 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1979392025056569226} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!136 &1183689340349210764 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1979392025056569226} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &2600283560465639833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331991084201789810} + - component: {fileID: 281392967243091949} + - component: {fileID: 2257079370663699835} + - component: {fileID: 1744863551299623659} + m_Layer: 0 + m_Name: LowerWing + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5331991084201789810 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600283560465639833} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.5, y: -0.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 0.3} + m_Children: [] + m_Father: {fileID: 5457386301066208319} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &281392967243091949 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600283560465639833} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2257079370663699835 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600283560465639833} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!135 &1744863551299623659 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2600283560465639833} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2693818167278716032 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4344415998316415568} + m_Layer: 0 + m_Name: WingLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4344415998316415568 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2693818167278716032} + m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 894217737310737308} + - {fileID: 6312318307262929698} + m_Father: {fileID: 5030816804692696162} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} +--- !u!1 &2770142703575531339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5030816804692696162} + - component: {fileID: 1670040105410703657} + - component: {fileID: 4023219243949271405} + m_Layer: 0 + m_Name: Butterfly + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5030816804692696162 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2770142703575531339} + m_LocalRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1531819724713776660} + - {fileID: 5457386301066208319} + - {fileID: 2168711585300898904} + - {fileID: 7150999648666034000} + - {fileID: 4344415998316415568} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 60, y: 0, z: 0} +--- !u!114 &1670040105410703657 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2770142703575531339} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 588a53f9e308795479b5deafb2409b71, type: 3} + m_Name: + m_EditorClassIdentifier: + _type: 8 +--- !u!65 &4023219243949271405 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2770142703575531339} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2, y: 1.9, z: 0.3} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2913561834066350359 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6312318307262929698} + - component: {fileID: 4417315425856187374} + - component: {fileID: 5395915079086269785} + - component: {fileID: 2386958379600441262} + m_Layer: 0 + m_Name: LowerWing + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6312318307262929698 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2913561834066350359} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.5, y: -0.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 0.3} + m_Children: [] + m_Father: {fileID: 4344415998316415568} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4417315425856187374 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2913561834066350359} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &5395915079086269785 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2913561834066350359} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!135 &2386958379600441262 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2913561834066350359} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3722613920731155380 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1348441151111380448} + - component: {fileID: 6656290196158661630} + - component: {fileID: 1216652622408399068} + - component: {fileID: 1038910346417356148} + m_Layer: 0 + m_Name: UpperWing + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1348441151111380448 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722613920731155380} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.5, y: 0.4, z: 0} + m_LocalScale: {x: 1.3, y: 1.3, z: 0.3} + m_Children: [] + m_Father: {fileID: 5457386301066208319} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6656290196158661630 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722613920731155380} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1216652622408399068 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722613920731155380} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!135 &1038910346417356148 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3722613920731155380} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &3885414432763725420 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2168711585300898904} + - component: {fileID: 2683269277284920413} + - component: {fileID: 3887814950829812059} + - component: {fileID: 3084581042586323101} + m_Layer: 0 + m_Name: TendrilLeft + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2168711585300898904 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3885414432763725420} + m_LocalRotation: {x: 0, y: 0, z: 0.08715578, w: 0.9961947} + m_LocalPosition: {x: -0.06, y: 1.1, z: 0} + m_LocalScale: {x: 0.02, y: 0.15, z: 0.02} + m_Children: [] + m_Father: {fileID: 5030816804692696162} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 10} +--- !u!33 &2683269277284920413 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3885414432763725420} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3887814950829812059 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3885414432763725420} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!136 &3084581042586323101 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3885414432763725420} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!1 &6014764718050675059 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5457386301066208319} + m_Layer: 0 + m_Name: WingRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5457386301066208319 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6014764718050675059} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1348441151111380448} + - {fileID: 5331991084201789810} + m_Father: {fileID: 5030816804692696162} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7411871362109957134 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1531819724713776660} + - component: {fileID: 8346595930141183654} + - component: {fileID: 4531053669480941680} + - component: {fileID: 1201391150634758703} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1531819724713776660 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7411871362109957134} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.3, y: 1, z: 0.3} + m_Children: [] + m_Father: {fileID: 5030816804692696162} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8346595930141183654 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7411871362109957134} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4531053669480941680 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7411871362109957134} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!136 &1201391150634758703 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7411871362109957134} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 0 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/Resources/Butterfly.prefab.meta b/Assets/Resources/Butterfly.prefab.meta new file mode 100644 index 000000000..9f1eb56c2 --- /dev/null +++ b/Assets/Resources/Butterfly.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 0167d9e91d1e6e742a4510e447cbef03 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ButterflyData.asset b/Assets/Resources/Data/ButterflyData.asset index 61b15399a..14f053aef 100644 --- a/Assets/Resources/Data/ButterflyData.asset +++ b/Assets/Resources/Data/ButterflyData.asset @@ -13,5 +13,7 @@ MonoBehaviour: m_Name: ButterflyData m_EditorClassIdentifier: ButterflyStruct: - Prefab: {fileID: 6953022481052749130, guid: 5486b6c5985f0a74dab7aa0548b222f6, + Prefab: {fileID: 2770142703575531339, guid: 0167d9e91d1e6e742a4510e447cbef03, type: 3} + MaxDistanceFromCurrentPosition: 10 + Speed: 0.1 From b91348d92f3254f896c83bb53ad07671585d25a6 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Fri, 23 Oct 2020 13:45:14 +0300 Subject: [PATCH 08/23] Add butterfly ground collision --- Assets/Resources/Butterfly.prefab | 19 ++++++++++++++++++- Assets/Scenes/ITickTest.unity | 2 +- .../MVC/Butterfly/ButterflyController.cs | 7 +++++++ Assets/Scripts/Managers/TagManager.cs | 1 + 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Assets/Resources/Butterfly.prefab b/Assets/Resources/Butterfly.prefab index b613ddbf6..30a47c0b6 100644 --- a/Assets/Resources/Butterfly.prefab +++ b/Assets/Resources/Butterfly.prefab @@ -317,6 +317,7 @@ GameObject: - component: {fileID: 5030816804692696162} - component: {fileID: 1670040105410703657} - component: {fileID: 4023219243949271405} + - component: {fileID: 7413386692111247059} m_Layer: 0 m_Name: Butterfly m_TagString: Untagged @@ -364,11 +365,27 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2770142703575531339} m_Material: {fileID: 0} - m_IsTrigger: 0 + m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 m_Size: {x: 2, y: 1.9, z: 0.3} m_Center: {x: 0, y: 0, z: 0} +--- !u!54 &7413386692111247059 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2770142703575531339} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 0 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 --- !u!1 &2913561834066350359 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/ITickTest.unity b/Assets/Scenes/ITickTest.unity index 4d05735e2..528ce42e2 100644 --- a/Assets/Scenes/ITickTest.unity +++ b/Assets/Scenes/ITickTest.unity @@ -391,7 +391,7 @@ GameObject: - component: {fileID: 966662972} m_Layer: 0 m_Name: BattlePlate - m_TagString: Untagged + m_TagString: Ground m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 8 diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index 791affa71..3e585cbfa 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -42,13 +42,20 @@ public void OnAwake() foreach (var trigger in butterflies) { ButterflyBehaviour butterflyBehaviour = trigger as ButterflyBehaviour; + butterflyBehaviour.OnFilterHandler += OnFilter; butterflyBehaviour.OnTriggerEnterHandler += OnTriggerEnter; } } + private bool OnFilter(Collider collider) + { + return collider.CompareTag(TagManager.GROUND); + } + private void OnTriggerEnter(ITrigger trigger, Collider collider) { Debug.Log("Butterfly OnTriggerEnter"); + //_context.ButterflyModel.TargetPoint = } diff --git a/Assets/Scripts/Managers/TagManager.cs b/Assets/Scripts/Managers/TagManager.cs index f28d4ff5a..6651c32b7 100644 --- a/Assets/Scripts/Managers/TagManager.cs +++ b/Assets/Scripts/Managers/TagManager.cs @@ -8,6 +8,7 @@ public static class TagManager public const string SPHERE = "Sphere"; public const string NPC = "NPC"; public const string ENEMY = "Enemy"; + public const string GROUND = "Ground"; #endregion } From 3895200ef55cc411c1bf47a9655ab9ef45c2367d Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Fri, 23 Oct 2020 16:57:18 +0300 Subject: [PATCH 09/23] Save WIP (rotation) --- Assets/Resources/Data/ButterflyData.asset | 2 +- .../MVC/Butterfly/ButterflyController.cs | 4 +- .../MVC/Butterfly/ButterflyData.cs | 38 ++++++++++++- .../Butterfly/ButterflyInitilizeController.cs | 2 +- .../MVC/Butterfly/ButterflyModel.cs | 57 +++++++++++-------- 5 files changed, 75 insertions(+), 28 deletions(-) diff --git a/Assets/Resources/Data/ButterflyData.asset b/Assets/Resources/Data/ButterflyData.asset index 14f053aef..753841e83 100644 --- a/Assets/Resources/Data/ButterflyData.asset +++ b/Assets/Resources/Data/ButterflyData.asset @@ -12,7 +12,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 9198d4fb6d83f4c44b9a7f026a956854, type: 3} m_Name: ButterflyData m_EditorClassIdentifier: - ButterflyStruct: + Struct: Prefab: {fileID: 2770142703575531339, guid: 0167d9e91d1e6e742a4510e447cbef03, type: 3} MaxDistanceFromCurrentPosition: 10 diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index 3e585cbfa..2b78e8e89 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -56,7 +56,9 @@ private void OnTriggerEnter(ITrigger trigger, Collider collider) { Debug.Log("Butterfly OnTriggerEnter"); - //_context.ButterflyModel.TargetPoint = + _context.ButterflyModel.ChangeTarget(); + + //collider. } #endregion diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index ea73918bd..bdc69f525 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -7,14 +7,48 @@ public class ButterflyData : ScriptableObject { #region Fields - public ButterflyStruct ButterflyStruct; + public ButterflyStruct Struct; #endregion #region Metods - //методы + public Vector3 NewTargetPoint(Vector3 currentPosition) + { + float x = GetRandomCoord(currentPosition.x); + float y = GetRandomCoord(currentPosition.y); + float z = GetRandomCoord(currentPosition.z); + return new Vector3(x, y, z); + + //return new Vector3(0, -10, 0); //for test + } + + private float GetRandomCoord(float currentCoord) + { + return Random.Range(currentCoord - Struct.MaxDistanceFromCurrentPosition, currentCoord + Struct.MaxDistanceFromCurrentPosition); + } + + public Vector3 Move(Vector3 currentPosition, Vector3 targetPoint) + { + return Vector3.MoveTowards(currentPosition, targetPoint, Struct.Speed); + } + + //public Quaternion Turn(Quaternion current, Quaternion target) + //{ + // return Quaternion.RotateTowards(current, target, Struct.Speed); + //} + + //public Vector3 Turn2(Vector3 current, Vector3 target) + //{ + // return Vector3.RotateTowards(current, target, Struct.Speed, 0.0f); + //} + + //public Vector3 GetPointInDirection(Vector3 direction) + //{ + + // return new Vector3(); + //} #endregion } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs index 2ae0372a6..b265e49a1 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs @@ -28,7 +28,7 @@ public ButterflyInitilizeController(GameContext context) public void OnAwake() { ButterflyData butterflyData = Data.ButterflyData; - GameObject butterflyObject = Object.Instantiate(butterflyData.ButterflyStruct.Prefab); + GameObject butterflyObject = Object.Instantiate(butterflyData.Struct.Prefab); ButterflyModel butterflyModel = new ButterflyModel(butterflyObject, butterflyData); _context.ButterflyModel = butterflyModel; } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index c4b6ba023..172b5c860 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -6,20 +6,31 @@ namespace BeastHunter { public class ButterflyModel { - Vector3 targetPoint; - ButterflyStruct butterflyStruct; - ButterflyData butterflyData; - GameObject butterfly; //потом оставить только конкретные компоненты + public Vector3 TargetPoint; + ButterflyData objData; + Transform objTransform; Vector3 Position { get { - return butterfly.transform.position; + return objTransform.position; } set { - butterfly.transform.position = value; + objTransform.position = value; + } + } + + Vector3 Direction + { + get + { + return objTransform.forward; + } + set + { + objTransform.forward = value; } } @@ -27,9 +38,8 @@ Vector3 Position public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) { - butterfly = butterflyObject; - this.butterflyData = butterflyData; - butterflyStruct = butterflyData.ButterflyStruct; + objData = butterflyData; + objTransform = butterflyObject.transform; } #endregion @@ -39,34 +49,35 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) public void Act() { - if (Position != targetPoint) + if (Position != TargetPoint) { - Position = Vector3.MoveTowards(Position, targetPoint, butterflyStruct.Speed); + Vector3 targetDirection = TargetPoint - Position; + Vector3 newDirection = Vector3.RotateTowards(Direction, targetDirection, 0.1f, 0.0f); + //Vector3 newDirection = Vector3.RotateTowards(new Vector3(Direction.x, 0 ,Direction.z), new Vector3(targetDirection.x, 0, targetDirection.z), 0.1f, 0.0f); + //Vector3 newDirection = Vector3.RotateTowards(new Vector3(0, Direction.y, 0), new Vector3(0, targetDirection.y, 0), 0.1f, 0.0f); + objTransform.rotation = Quaternion.LookRotation(newDirection); + + //objTransform.transform.rotation = objData.Turn(objTransform.transform.rotation, Quaternion.FromToRotation(Vector3.forward, Vector3.right)); + MoveToTarget(); } else { - targetPoint = NextTargetPoint(); + ChangeTarget(); } } #endregion - void MoveTo(Vector3 point) - { - - } - Vector3 NextTargetPoint() + void MoveToTarget() { - float x = GetRandomCoord(Position.x); - float y = GetRandomCoord(Position.y); - float z = GetRandomCoord(Position.z); - return new Vector3(x,y,z); + Position = objData.Move(Position, TargetPoint); } - float GetRandomCoord(float currentCoord) + public void ChangeTarget() { - return Random.Range(currentCoord - butterflyStruct.MaxDistanceFromCurrentPosition, currentCoord + butterflyStruct.MaxDistanceFromCurrentPosition); + Debug.Log("Butterfly.ChangeTarget()"); + TargetPoint = objData.NewTargetPoint(Position); } } } From 35497b7a27126dcb9e0165f5018eed70f987d857 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Fri, 23 Oct 2020 21:15:55 +0300 Subject: [PATCH 10/23] Update Butterfly.prefab --- Assets/Resources/Butterfly.prefab | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Assets/Resources/Butterfly.prefab b/Assets/Resources/Butterfly.prefab index 30a47c0b6..cbe1f9f31 100644 --- a/Assets/Resources/Butterfly.prefab +++ b/Assets/Resources/Butterfly.prefab @@ -297,7 +297,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2693818167278716032} - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} + m_LocalRotation: {x: 0, y: 0.9659258, z: 0, w: 0.2588191} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: @@ -305,7 +305,7 @@ Transform: - {fileID: 6312318307262929698} m_Father: {fileID: 5030816804692696162} m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 150, z: 0} --- !u!1 &2770142703575531339 GameObject: m_ObjectHideFlags: 0 @@ -380,7 +380,7 @@ Rigidbody: serializedVersion: 2 m_Mass: 1 m_Drag: 0 - m_AngularDrag: 0.05 + m_AngularDrag: 0 m_UseGravity: 0 m_IsKinematic: 0 m_Interpolate: 0 @@ -683,7 +683,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6014764718050675059} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: 0, y: 0.2588191, z: 0, w: 0.9659258} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: @@ -691,7 +691,7 @@ Transform: - {fileID: 5331991084201789810} m_Father: {fileID: 5030816804692696162} m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 30, z: 0} --- !u!1 &7411871362109957134 GameObject: m_ObjectHideFlags: 0 From 347b3fe839bdd259a095e086a301459de57f24ba Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Fri, 23 Oct 2020 21:50:22 +0300 Subject: [PATCH 11/23] Update Butterfly.prefab --- Assets/Resources/Butterfly.prefab | 90 +------------------------------ 1 file changed, 2 insertions(+), 88 deletions(-) diff --git a/Assets/Resources/Butterfly.prefab b/Assets/Resources/Butterfly.prefab index cbe1f9f31..1a0158680 100644 --- a/Assets/Resources/Butterfly.prefab +++ b/Assets/Resources/Butterfly.prefab @@ -11,7 +11,6 @@ GameObject: - component: {fileID: 894217737310737308} - component: {fileID: 4883835300943606062} - component: {fileID: 6147490541358739798} - - component: {fileID: 7783249595321592875} m_Layer: 0 m_Name: UpperWing m_TagString: Untagged @@ -78,19 +77,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!135 &7783249595321592875 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 545940069974267311} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &1979392025056569226 GameObject: m_ObjectHideFlags: 0 @@ -102,7 +88,6 @@ GameObject: - component: {fileID: 7150999648666034000} - component: {fileID: 3294386859595215342} - component: {fileID: 9148099870201204941} - - component: {fileID: 1183689340349210764} m_Layer: 0 m_Name: TendrilRight m_TagString: Untagged @@ -169,20 +154,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!136 &1183689340349210764 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1979392025056569226} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - m_Radius: 0.5000001 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} --- !u!1 &2600283560465639833 GameObject: m_ObjectHideFlags: 0 @@ -194,7 +165,6 @@ GameObject: - component: {fileID: 5331991084201789810} - component: {fileID: 281392967243091949} - component: {fileID: 2257079370663699835} - - component: {fileID: 1744863551299623659} m_Layer: 0 m_Name: LowerWing m_TagString: Untagged @@ -261,19 +231,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!135 &1744863551299623659 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2600283560465639833} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &2693818167278716032 GameObject: m_ObjectHideFlags: 0 @@ -368,8 +325,8 @@ BoxCollider: m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 2, y: 1.9, z: 0.3} - m_Center: {x: 0, y: 0, z: 0} + m_Size: {x: 1.4, y: 2, z: 0.6} + m_Center: {x: 0, y: 0.05, z: -0.2} --- !u!54 &7413386692111247059 Rigidbody: m_ObjectHideFlags: 0 @@ -397,7 +354,6 @@ GameObject: - component: {fileID: 6312318307262929698} - component: {fileID: 4417315425856187374} - component: {fileID: 5395915079086269785} - - component: {fileID: 2386958379600441262} m_Layer: 0 m_Name: LowerWing m_TagString: Untagged @@ -464,19 +420,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!135 &2386958379600441262 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2913561834066350359} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &3722613920731155380 GameObject: m_ObjectHideFlags: 0 @@ -488,7 +431,6 @@ GameObject: - component: {fileID: 1348441151111380448} - component: {fileID: 6656290196158661630} - component: {fileID: 1216652622408399068} - - component: {fileID: 1038910346417356148} m_Layer: 0 m_Name: UpperWing m_TagString: Untagged @@ -555,19 +497,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!135 &1038910346417356148 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3722613920731155380} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} --- !u!1 &3885414432763725420 GameObject: m_ObjectHideFlags: 0 @@ -579,7 +508,6 @@ GameObject: - component: {fileID: 2168711585300898904} - component: {fileID: 2683269277284920413} - component: {fileID: 3887814950829812059} - - component: {fileID: 3084581042586323101} m_Layer: 0 m_Name: TendrilLeft m_TagString: Untagged @@ -646,20 +574,6 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!136 &3084581042586323101 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3885414432763725420} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - m_Radius: 0.5000001 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} --- !u!1 &6014764718050675059 GameObject: m_ObjectHideFlags: 0 From 62b70a12289cd19894104193a82ab46520d2ac70 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Sat, 24 Oct 2020 15:22:30 +0300 Subject: [PATCH 12/23] Add upper and lower flight limits, add smooth turn --- Assets/Resources/Data/ButterflyData.asset | 3 + .../MVC/Butterfly/ButterflyController.cs | 7 +- .../MVC/Butterfly/ButterflyData.cs | 24 ++----- .../MVC/Butterfly/ButterflyModel.cs | 68 +++++++++++-------- .../MVC/Butterfly/ButterflyStruct.cs | 13 ++++ 5 files changed, 63 insertions(+), 52 deletions(-) diff --git a/Assets/Resources/Data/ButterflyData.asset b/Assets/Resources/Data/ButterflyData.asset index 753841e83..bbc5e0653 100644 --- a/Assets/Resources/Data/ButterflyData.asset +++ b/Assets/Resources/Data/ButterflyData.asset @@ -15,5 +15,8 @@ MonoBehaviour: Struct: Prefab: {fileID: 2770142703575531339, guid: 0167d9e91d1e6e742a4510e447cbef03, type: 3} + Size: 0.5 MaxDistanceFromCurrentPosition: 10 Speed: 0.1 + TurnSpeed: 0.03 + MaxFlyAltitudeFromSpawn: 5 diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index 2b78e8e89..a1a9f286f 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -54,11 +54,8 @@ private bool OnFilter(Collider collider) private void OnTriggerEnter(ITrigger trigger, Collider collider) { - Debug.Log("Butterfly OnTriggerEnter"); - - _context.ButterflyModel.ChangeTarget(); - - //collider. + Debug.Log(this+" OnTriggerEnter"); + _context.ButterflyModel.OnTriggerEnter(trigger, collider); } #endregion diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index bdc69f525..3498b2b7c 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -7,6 +7,7 @@ public class ButterflyData : ScriptableObject { #region Fields + private readonly float sin60 = Mathf.Sqrt(3) / 2; public ButterflyStruct Struct; #endregion @@ -20,8 +21,6 @@ public Vector3 NewTargetPoint(Vector3 currentPosition) float y = GetRandomCoord(currentPosition.y); float z = GetRandomCoord(currentPosition.z); return new Vector3(x, y, z); - - //return new Vector3(0, -10, 0); //for test } private float GetRandomCoord(float currentCoord) @@ -34,21 +33,12 @@ public Vector3 Move(Vector3 currentPosition, Vector3 targetPoint) return Vector3.MoveTowards(currentPosition, targetPoint, Struct.Speed); } - //public Quaternion Turn(Quaternion current, Quaternion target) - //{ - // return Quaternion.RotateTowards(current, target, Struct.Speed); - //} - - //public Vector3 Turn2(Vector3 current, Vector3 target) - //{ - // return Vector3.RotateTowards(current, target, Struct.Speed, 0.0f); - //} - - //public Vector3 GetPointInDirection(Vector3 direction) - //{ - - // return new Vector3(); - //} + public Quaternion Turn(Transform transform, Vector3 targetPoint) + { + Vector3 targetDirection = targetPoint - transform.position; + Vector3 newDirection = Vector3.RotateTowards(transform.forward, targetDirection, Struct.TurnSpeed, 0.0f); + return Quaternion.LookRotation(new Vector3(newDirection.x, -sin60, newDirection.z)); + } #endregion } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index 172b5c860..aa5598a4b 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -1,16 +1,19 @@ -using System.Collections; +using System; +using System.Collections; using System.Collections.Generic; +using System.Net; using UnityEngine; namespace BeastHunter { public class ButterflyModel { - public Vector3 TargetPoint; - ButterflyData objData; - Transform objTransform; + private Vector3 TargetPoint; + private ButterflyData objData; + private Transform objTransform; + private readonly float maxFlyAltitude; - Vector3 Position + private Vector3 Position { get { @@ -22,24 +25,14 @@ Vector3 Position } } - Vector3 Direction - { - get - { - return objTransform.forward; - } - set - { - objTransform.forward = value; - } - } - #region ClassLifeCycle public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) { objData = butterflyData; objTransform = butterflyObject.transform; + objTransform.localScale *= objData.Struct.Size; + maxFlyAltitude = Position.y + objData.Struct.MaxFlyAltitudeFromSpawn; } #endregion @@ -51,14 +44,15 @@ public void Act() { if (Position != TargetPoint) { - Vector3 targetDirection = TargetPoint - Position; - Vector3 newDirection = Vector3.RotateTowards(Direction, targetDirection, 0.1f, 0.0f); - //Vector3 newDirection = Vector3.RotateTowards(new Vector3(Direction.x, 0 ,Direction.z), new Vector3(targetDirection.x, 0, targetDirection.z), 0.1f, 0.0f); - //Vector3 newDirection = Vector3.RotateTowards(new Vector3(0, Direction.y, 0), new Vector3(0, targetDirection.y, 0), 0.1f, 0.0f); - objTransform.rotation = Quaternion.LookRotation(newDirection); - - //objTransform.transform.rotation = objData.Turn(objTransform.transform.rotation, Quaternion.FromToRotation(Vector3.forward, Vector3.right)); - MoveToTarget(); + if (MaxAltitudeReached()) + { + Debug.Log(this + " MaxAltitudeReached() " + maxFlyAltitude); + //ChangeTarget(); + TargetPoint = -TargetPoint / 2; + Debug.Log(this + " Next point " + TargetPoint); + } + TurnToTarget(); + MoveToTarget(); } else { @@ -66,18 +60,32 @@ public void Act() } } - #endregion + public void OnTriggerEnter(ITrigger trigger, Collider collider) + { + TargetPoint = -TargetPoint; + } + private void ChangeTarget() + { + //Debug.Log("Butterfly.ChangeTarget()"); + TargetPoint = objData.NewTargetPoint(Position); + } - void MoveToTarget() + private void TurnToTarget() + { + objTransform.rotation = objData.Turn(objTransform, TargetPoint); + } + + private void MoveToTarget() { Position = objData.Move(Position, TargetPoint); } - public void ChangeTarget() + private bool MaxAltitudeReached() { - Debug.Log("Butterfly.ChangeTarget()"); - TargetPoint = objData.NewTargetPoint(Position); + return Position.y >= maxFlyAltitude; } + + #endregion } } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs index b6ec66aab..82ee123e0 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs @@ -1,5 +1,6 @@ using UnityEngine; using System; +using UnityEngine.Internal; [Serializable] public struct ButterflyStruct @@ -8,9 +9,21 @@ public struct ButterflyStruct public GameObject Prefab; + [Tooltip("Default: 0.5")] + public float Size; + + [Tooltip("Default: 10")] public float MaxDistanceFromCurrentPosition; + + [Tooltip("Default: 0.1")] public float Speed; + [Tooltip("Default: 0.03")] + public float TurnSpeed; + + [Tooltip("Default: 5")] + public float MaxFlyAltitudeFromSpawn; + #endregion } From 803f9e01a33a67bdc1e39b03a98ed2462e355632 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Sat, 24 Oct 2020 21:31:56 +0300 Subject: [PATCH 13/23] Improved behavior for upper and lower fly limits --- .../MVC/Butterfly/ButterflyData.cs | 25 ++++++++++++-- .../MVC/Butterfly/ButterflyModel.cs | 34 ++++++++++++------- .../MVC/Butterfly/ButterflyStruct.cs | 5 +++ 3 files changed, 49 insertions(+), 15 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 3498b2b7c..ee1cf9338 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -15,6 +15,7 @@ public class ButterflyData : ScriptableObject #region Metods + /// Return random coordinates within MaxDistanceFromCurrentPosition public Vector3 NewTargetPoint(Vector3 currentPosition) { float x = GetRandomCoord(currentPosition.x); @@ -23,9 +24,29 @@ public Vector3 NewTargetPoint(Vector3 currentPosition) return new Vector3(x, y, z); } - private float GetRandomCoord(float currentCoord) + /// Return random coordinates within MaxDistanceFromCurrentPosition in the opposite direction along the specified coordinate axis + public Vector3 NewTargetPointInOppositeDirection(Vector3 currentPosition, Vector3 currentDirection, string axis) { - return Random.Range(currentCoord - Struct.MaxDistanceFromCurrentPosition, currentCoord + Struct.MaxDistanceFromCurrentPosition); + Vector3 newTarget = NewTargetPoint(currentPosition); + + switch (axis.ToUpper()) + { + case "X": newTarget.x = GetRandomCoord(currentPosition.x, currentDirection.x); break; + case "Y": newTarget.y = GetRandomCoord(currentPosition.y, currentDirection.y); break; + case "Z": newTarget.z = GetRandomCoord(currentPosition.z, currentDirection.z); break; + } + + return newTarget; + } + + private float GetRandomCoord(float coord, float? forwardCoord = null) + { + if (forwardCoord.HasValue && forwardCoord.Value != 0) + { + if (forwardCoord > 0) return Random.Range(coord - Struct.MaxDistanceFromCurrentPosition, coord); + else return Random.Range(coord, coord + Struct.MaxDistanceFromCurrentPosition); + } + return Random.Range(coord - Struct.MaxDistanceFromCurrentPosition, coord + Struct.MaxDistanceFromCurrentPosition); ; } public Vector3 Move(Vector3 currentPosition, Vector3 targetPoint) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index aa5598a4b..5e66d78e9 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -25,6 +25,14 @@ private Vector3 Position } } + private Vector3 Direction + { + get + { + return TargetPoint - objTransform.position; + } + } + #region ClassLifeCycle public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) @@ -44,15 +52,9 @@ public void Act() { if (Position != TargetPoint) { - if (MaxAltitudeReached()) - { - Debug.Log(this + " MaxAltitudeReached() " + maxFlyAltitude); - //ChangeTarget(); - TargetPoint = -TargetPoint / 2; - Debug.Log(this + " Next point " + TargetPoint); - } - TurnToTarget(); - MoveToTarget(); + if (MaxAltitudeReached() && TargetPoint.y > Position.y) ChangeTarget("Y"); + TurnToTarget(); + MoveToTarget(); } else { @@ -62,13 +64,14 @@ public void Act() public void OnTriggerEnter(ITrigger trigger, Collider collider) { - TargetPoint = -TargetPoint; + ChangeTarget("Y"); } - private void ChangeTarget() + private void ChangeTarget(string axis = null) { - //Debug.Log("Butterfly.ChangeTarget()"); - TargetPoint = objData.NewTargetPoint(Position); + if (axis == null) TargetPoint = objData.NewTargetPoint(Position); + else TargetPoint = objData.NewTargetPointInOppositeDirection(Position, Direction, axis); + Debug.Log(this + " new TargetPoint " + TargetPoint); } private void TurnToTarget() @@ -83,6 +86,11 @@ private void MoveToTarget() private bool MaxAltitudeReached() { + if (Position.y >= maxFlyAltitude) //for debug + { + Debug.Log(this + " MaxAltitudeReached(): " + maxFlyAltitude); + Debug.Log(this + " current position " + Position); + } return Position.y >= maxFlyAltitude; } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs index 82ee123e0..7d9059780 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs @@ -9,18 +9,23 @@ public struct ButterflyStruct public GameObject Prefab; + /// butterfly size [Tooltip("Default: 0.5")] public float Size; + /// maximum distance of the coordinate from the current position [Tooltip("Default: 10")] public float MaxDistanceFromCurrentPosition; + /// butterfly fly speed [Tooltip("Default: 0.1")] public float Speed; + /// butterfly turn speed [Tooltip("Default: 0.03")] public float TurnSpeed; + /// maximum butterfly flight height from the spawn point [Tooltip("Default: 5")] public float MaxFlyAltitudeFromSpawn; From 9319411a222d797c30906ec24a320404b68277f8 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Sat, 24 Oct 2020 22:36:31 +0300 Subject: [PATCH 14/23] Update ButterflyData.cs --- Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index ee1cf9338..177d262fa 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -58,7 +58,8 @@ public Quaternion Turn(Transform transform, Vector3 targetPoint) { Vector3 targetDirection = targetPoint - transform.position; Vector3 newDirection = Vector3.RotateTowards(transform.forward, targetDirection, Struct.TurnSpeed, 0.0f); - return Quaternion.LookRotation(new Vector3(newDirection.x, -sin60, newDirection.z)); + newDirection.y = -sin60; //keep constant tilt of the butterfly + return Quaternion.LookRotation(newDirection); } #endregion From a649b38a4e9c2ec3d85bd6516795523686ca8a04 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Sun, 25 Oct 2020 18:55:35 +0300 Subject: [PATCH 15/23] Add butterfly sitting --- .../MVC/Butterfly/ButterflyController.cs | 2 +- .../MVC/Butterfly/ButterflyData.cs | 2 +- .../MVC/Butterfly/ButterflyModel.cs | 70 +++++++++++++++---- 3 files changed, 57 insertions(+), 17 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index a1a9f286f..f94d4caa7 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -54,7 +54,7 @@ private bool OnFilter(Collider collider) private void OnTriggerEnter(ITrigger trigger, Collider collider) { - Debug.Log(this+" OnTriggerEnter"); + //Debug.Log(this+" OnTriggerEnter"); _context.ButterflyModel.OnTriggerEnter(trigger, collider); } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 177d262fa..1718a2773 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -13,7 +13,7 @@ public class ButterflyData : ScriptableObject #endregion - #region Metods + #region Methods /// Return random coordinates within MaxDistanceFromCurrentPosition public Vector3 NewTargetPoint(Vector3 currentPosition) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index 5e66d78e9..9b917ab78 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -1,4 +1,4 @@ -using System; +//using System; using System.Collections; using System.Collections.Generic; using System.Net; @@ -8,14 +8,27 @@ namespace BeastHunter { public class ButterflyModel { + #region Fields + private Vector3 TargetPoint; private ButterflyData objData; private Transform objTransform; + private readonly float maxFlyAltitude; + private float sittingTimer; + private bool isSitting = false; + + //GameObject targetPoint; //for debug + + #endregion + + + #region Properties + private Vector3 Position { - get + get { return objTransform.position; } @@ -33,6 +46,9 @@ private Vector3 Direction } } + #endregion + + #region ClassLifeCycle public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) @@ -41,37 +57,61 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) objTransform = butterflyObject.transform; objTransform.localScale *= objData.Struct.Size; maxFlyAltitude = Position.y + objData.Struct.MaxFlyAltitudeFromSpawn; + + //targetPoint = new GameObject("TargetPoint"); //for debug } #endregion - #region Metods + #region Methods public void Act() { - if (Position != TargetPoint) + if (isSitting) { - if (MaxAltitudeReached() && TargetPoint.y > Position.y) ChangeTarget("Y"); - TurnToTarget(); - MoveToTarget(); + sittingTimer -= Time.deltaTime; + if (sittingTimer <= 0) isSitting = false; } else { - ChangeTarget(); + if (Position != TargetPoint) + { + if (MaxAltitudeReached() && TargetPoint.y > Position.y) ChangeTarget("Y"); + TurnToTarget(); + MoveToTarget(); + } + else + { + ChangeTarget(); + } } } public void OnTriggerEnter(ITrigger trigger, Collider collider) { - ChangeTarget("Y"); + if (collider.gameObject.tag == TagManager.GROUND) + { + ChangeTarget("Y"); + if (Random.Range(1, 100) > 50) SitDown(); + } + } + + private void SitDown() + { + isSitting = true; + sittingTimer = Random.Range(1.5f, 4f); + + Debug.Log(this+ " sittingTimer: " + sittingTimer); } private void ChangeTarget(string axis = null) { if (axis == null) TargetPoint = objData.NewTargetPoint(Position); else TargetPoint = objData.NewTargetPointInOppositeDirection(Position, Direction, axis); - Debug.Log(this + " new TargetPoint " + TargetPoint); + + //targetPoint.transform.position = TargetPoint; //for debug + //Debug.Log(this + " new TargetPoint " + TargetPoint); } private void TurnToTarget() @@ -86,11 +126,11 @@ private void MoveToTarget() private bool MaxAltitudeReached() { - if (Position.y >= maxFlyAltitude) //for debug - { - Debug.Log(this + " MaxAltitudeReached(): " + maxFlyAltitude); - Debug.Log(this + " current position " + Position); - } + //if (Position.y >= maxFlyAltitude) //for debug + //{ + // Debug.Log(this + " MaxAltitudeReached(): " + maxFlyAltitude); + // Debug.Log(this + " current position " + Position); + //} return Position.y >= maxFlyAltitude; } From a1dfabfffe3d788ef2649395795efe4c9abccc28 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Sun, 25 Oct 2020 19:27:48 +0300 Subject: [PATCH 16/23] Update ButterflyData.cs --- .../ContextTest/MVC/Butterfly/ButterflyData.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 1718a2773..c2b28483f 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -13,6 +13,20 @@ public class ButterflyData : ScriptableObject #endregion + #region ClassLifeCycle + + public ButterflyData() + { + Struct.Size = 0.5f; + Struct.Speed = 0.1f; + Struct.TurnSpeed = 0.03f; + Struct.MaxFlyAltitudeFromSpawn = 5; + Struct.MaxDistanceFromCurrentPosition = 10; + } + + #endregion + + #region Methods /// Return random coordinates within MaxDistanceFromCurrentPosition From 44675ad5b44857c6d26e50ea7ac0edbce6df0810 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Sun, 25 Oct 2020 21:40:21 +0300 Subject: [PATCH 17/23] code cleaning --- .../MVC/Butterfly/ButterflyBehaviour.cs | 8 +-- .../MVC/Butterfly/ButterflyController.cs | 8 +-- .../MVC/Butterfly/ButterflyData.cs | 30 +++++------ .../Butterfly/ButterflyInitilizeController.cs | 4 +- .../MVC/Butterfly/ButterflyModel.cs | 54 ++++++------------- .../MVC/Butterfly/ButterflyStruct.cs | 1 - 6 files changed, 34 insertions(+), 71 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs index 1c4f8029f..bc93912dd 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyBehaviour.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace BeastHunter +namespace BeastHunter { class ButterflyBehaviour: InteractableObjectBehavior { diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index f94d4caa7..48278dba4 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; +using UnityEngine; namespace BeastHunter { @@ -54,8 +51,7 @@ private bool OnFilter(Collider collider) private void OnTriggerEnter(ITrigger trigger, Collider collider) { - //Debug.Log(this+" OnTriggerEnter"); - _context.ButterflyModel.OnTriggerEnter(trigger, collider); + _context.ButterflyModel.OnTriggerEnter(collider); } #endregion diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index c2b28483f..32883eed6 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -1,6 +1,4 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; +using UnityEngine; [CreateAssetMenu(fileName = "NewButterfly", menuName = "CreateData/Butterfly", order = 0)] public class ButterflyData : ScriptableObject @@ -29,6 +27,19 @@ public ButterflyData() #region Methods + public Vector3 Move(Vector3 currentPosition, Vector3 targetPoint) + { + return Vector3.MoveTowards(currentPosition, targetPoint, Struct.Speed); + } + + public Quaternion Turn(Transform transform, Vector3 targetPoint) + { + Vector3 targetDirection = targetPoint - transform.position; + Vector3 newDirection = Vector3.RotateTowards(transform.forward, targetDirection, Struct.TurnSpeed, 0.0f); + newDirection.y = -sin60; //keep constant tilt of the butterfly + return Quaternion.LookRotation(newDirection); + } + /// Return random coordinates within MaxDistanceFromCurrentPosition public Vector3 NewTargetPoint(Vector3 currentPosition) { @@ -63,18 +74,5 @@ private float GetRandomCoord(float coord, float? forwardCoord = null) return Random.Range(coord - Struct.MaxDistanceFromCurrentPosition, coord + Struct.MaxDistanceFromCurrentPosition); ; } - public Vector3 Move(Vector3 currentPosition, Vector3 targetPoint) - { - return Vector3.MoveTowards(currentPosition, targetPoint, Struct.Speed); - } - - public Quaternion Turn(Transform transform, Vector3 targetPoint) - { - Vector3 targetDirection = targetPoint - transform.position; - Vector3 newDirection = Vector3.RotateTowards(transform.forward, targetDirection, Struct.TurnSpeed, 0.0f); - newDirection.y = -sin60; //keep constant tilt of the butterfly - return Quaternion.LookRotation(newDirection); - } - #endregion } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs index b265e49a1..3c47b2713 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyInitilizeController.cs @@ -1,6 +1,4 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; +using UnityEngine; namespace BeastHunter { diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index 9b917ab78..1ebceff69 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -1,8 +1,4 @@ -//using System; -using System.Collections; -using System.Collections.Generic; -using System.Net; -using UnityEngine; +using UnityEngine; namespace BeastHunter { @@ -10,17 +6,15 @@ public class ButterflyModel { #region Fields - private Vector3 TargetPoint; private ButterflyData objData; private Transform objTransform; + private Vector3 TargetPoint; private readonly float maxFlyAltitude; - private float sittingTimer; + private float sittingTimer = 0.00f; private bool isSitting = false; - //GameObject targetPoint; //for debug - #endregion @@ -28,22 +22,8 @@ public class ButterflyModel private Vector3 Position { - get - { - return objTransform.position; - } - set - { - objTransform.position = value; - } - } - - private Vector3 Direction - { - get - { - return TargetPoint - objTransform.position; - } + get => objTransform.position; + set => objTransform.position = value; } #endregion @@ -57,8 +37,6 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) objTransform = butterflyObject.transform; objTransform.localScale *= objData.Struct.Size; maxFlyAltitude = Position.y + objData.Struct.MaxFlyAltitudeFromSpawn; - - //targetPoint = new GameObject("TargetPoint"); //for debug } #endregion @@ -77,7 +55,11 @@ public void Act() { if (Position != TargetPoint) { - if (MaxAltitudeReached() && TargetPoint.y > Position.y) ChangeTarget("Y"); + if (MaxAltitudeReached() && TargetPoint.y > Position.y) + { + Debug.Log(this + " maxFlyAltitude has reached"); + ChangeTarget("Y"); + } TurnToTarget(); MoveToTarget(); } @@ -88,8 +70,10 @@ public void Act() } } - public void OnTriggerEnter(ITrigger trigger, Collider collider) + public void OnTriggerEnter(Collider collider) { + Debug.Log(this + " OnTriggerEnter(Collider collider)"); + if (collider.gameObject.tag == TagManager.GROUND) { ChangeTarget("Y"); @@ -99,6 +83,8 @@ public void OnTriggerEnter(ITrigger trigger, Collider collider) private void SitDown() { + Debug.Log(this + " SitDown()"); + isSitting = true; sittingTimer = Random.Range(1.5f, 4f); @@ -108,10 +94,7 @@ private void SitDown() private void ChangeTarget(string axis = null) { if (axis == null) TargetPoint = objData.NewTargetPoint(Position); - else TargetPoint = objData.NewTargetPointInOppositeDirection(Position, Direction, axis); - - //targetPoint.transform.position = TargetPoint; //for debug - //Debug.Log(this + " new TargetPoint " + TargetPoint); + else TargetPoint = objData.NewTargetPointInOppositeDirection(Position, TargetPoint - objTransform.position, axis); } private void TurnToTarget() @@ -126,11 +109,6 @@ private void MoveToTarget() private bool MaxAltitudeReached() { - //if (Position.y >= maxFlyAltitude) //for debug - //{ - // Debug.Log(this + " MaxAltitudeReached(): " + maxFlyAltitude); - // Debug.Log(this + " current position " + Position); - //} return Position.y >= maxFlyAltitude; } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs index 7d9059780..0ba2cd068 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs @@ -1,6 +1,5 @@ using UnityEngine; using System; -using UnityEngine.Internal; [Serializable] public struct ButterflyStruct From 5f3357aedefcbc53da3ee105020c18947e4603de Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Sun, 25 Oct 2020 22:34:21 +0300 Subject: [PATCH 18/23] Transfer main method ButterflyModel.Act() to ButterflyData --- .../MVC/Butterfly/ButterflyController.cs | 2 +- .../MVC/Butterfly/ButterflyData.cs | 70 +++++++++++--- .../MVC/Butterfly/ButterflyModel.cs | 92 ++++--------------- 3 files changed, 78 insertions(+), 86 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs index 48278dba4..45e83f46a 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyController.cs @@ -25,7 +25,7 @@ public ButterflyController(GameContext context) public void Updating() { - _context.ButterflyModel.Act(); + _context.ButterflyModel.Execute(); } #endregion diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 32883eed6..6d6de2d68 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -1,4 +1,5 @@ -using UnityEngine; +using BeastHunter; +using UnityEngine; [CreateAssetMenu(fileName = "NewButterfly", menuName = "CreateData/Butterfly", order = 0)] public class ButterflyData : ScriptableObject @@ -27,21 +28,66 @@ public ButterflyData() #region Methods - public Vector3 Move(Vector3 currentPosition, Vector3 targetPoint) + public void Act(ButterflyModel model) + { + if (model.IsSitting) + { + model.SittingTimer -= Time.deltaTime; + if (model.SittingTimer <= 0) model.IsSitting = false; + } + else + { + if (model.Position != model.TargetPoint) + { + if (model.Position.y >= model.MaxFlyAltitude && model.TargetPoint.y > model.Position.y) + { + Debug.Log(this + " maxFlyAltitude has reached"); + model.TargetPoint = NewTargetPointInOppositeDirection(model.Position, model.TargetPoint - model.Position, "Y"); + } + model.Rotation = Turn(model.TargetPoint, model.Position, model.Forward); + model.Position = Move(model.TargetPoint, model.Position); + } + else + { + model.TargetPoint = NewTargetPoint(model.Position); + } + } + } + + public void TriggerEnter(Collider collider, ButterflyModel model) + { + Debug.Log(this + " OnTriggerEnter(Collider collider)"); + + if (collider.gameObject.tag == TagManager.GROUND) + { + model.TargetPoint = NewTargetPointInOppositeDirection(model.Position, model.TargetPoint - model.Position, "Y"); + if (Random.Range(1, 100) > 25) + { + Debug.Log(this + " is sitting"); + + model.IsSitting = true; + model.SittingTimer = Random.Range(1.5f, 4f); + + Debug.Log(this + " sittingTimer: " + model.SittingTimer); + } + } + } + + private Vector3 Move(Vector3 targetPoint, Vector3 currentPosition) { return Vector3.MoveTowards(currentPosition, targetPoint, Struct.Speed); } - public Quaternion Turn(Transform transform, Vector3 targetPoint) + private Quaternion Turn(Vector3 targetPoint, Vector3 position, Vector3 forward) { - Vector3 targetDirection = targetPoint - transform.position; - Vector3 newDirection = Vector3.RotateTowards(transform.forward, targetDirection, Struct.TurnSpeed, 0.0f); + Vector3 targetDirection = targetPoint - position; + Vector3 newDirection = Vector3.RotateTowards(forward, targetDirection, Struct.TurnSpeed, 0.0f); newDirection.y = -sin60; //keep constant tilt of the butterfly return Quaternion.LookRotation(newDirection); } /// Return random coordinates within MaxDistanceFromCurrentPosition - public Vector3 NewTargetPoint(Vector3 currentPosition) + private Vector3 NewTargetPoint(Vector3 currentPosition) { float x = GetRandomCoord(currentPosition.x); float y = GetRandomCoord(currentPosition.y); @@ -50,7 +96,7 @@ public Vector3 NewTargetPoint(Vector3 currentPosition) } /// Return random coordinates within MaxDistanceFromCurrentPosition in the opposite direction along the specified coordinate axis - public Vector3 NewTargetPointInOppositeDirection(Vector3 currentPosition, Vector3 currentDirection, string axis) + private Vector3 NewTargetPointInOppositeDirection(Vector3 currentPosition, Vector3 currentDirection, string axis) { Vector3 newTarget = NewTargetPoint(currentPosition); @@ -64,14 +110,14 @@ public Vector3 NewTargetPointInOppositeDirection(Vector3 currentPosition, Vector return newTarget; } - private float GetRandomCoord(float coord, float? forwardCoord = null) + private float GetRandomCoord(float currentCoord, float? directionCoord = null) { - if (forwardCoord.HasValue && forwardCoord.Value != 0) + if (directionCoord.HasValue && directionCoord.Value != 0) { - if (forwardCoord > 0) return Random.Range(coord - Struct.MaxDistanceFromCurrentPosition, coord); - else return Random.Range(coord, coord + Struct.MaxDistanceFromCurrentPosition); + if (directionCoord > 0) return Random.Range(currentCoord - Struct.MaxDistanceFromCurrentPosition, currentCoord - 0.5f); + else return Random.Range(currentCoord + 0.5f, currentCoord + Struct.MaxDistanceFromCurrentPosition); } - return Random.Range(coord - Struct.MaxDistanceFromCurrentPosition, coord + Struct.MaxDistanceFromCurrentPosition); ; + return Random.Range(currentCoord - Struct.MaxDistanceFromCurrentPosition, currentCoord + Struct.MaxDistanceFromCurrentPosition); ; } #endregion diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index 1ebceff69..430ce8aa1 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -8,24 +8,35 @@ public class ButterflyModel private ButterflyData objData; private Transform objTransform; - private Vector3 TargetPoint; - private readonly float maxFlyAltitude; + public float SittingTimer = 0.00f; + public bool IsSitting = false; - private float sittingTimer = 0.00f; - private bool isSitting = false; + public Vector3 TargetPoint; + public readonly float MaxFlyAltitude; #endregion #region Properties - private Vector3 Position + public Vector3 Position { get => objTransform.position; set => objTransform.position = value; } + public Quaternion Rotation + { + get => objTransform.rotation; + set => objTransform.rotation = value; + } + + public Vector3 Forward + { + get => objTransform.forward; + } + #endregion @@ -36,7 +47,7 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) objData = butterflyData; objTransform = butterflyObject.transform; objTransform.localScale *= objData.Struct.Size; - maxFlyAltitude = Position.y + objData.Struct.MaxFlyAltitudeFromSpawn; + MaxFlyAltitude = Position.y + objData.Struct.MaxFlyAltitudeFromSpawn; } #endregion @@ -44,73 +55,8 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) #region Methods - public void Act() - { - if (isSitting) - { - sittingTimer -= Time.deltaTime; - if (sittingTimer <= 0) isSitting = false; - } - else - { - if (Position != TargetPoint) - { - if (MaxAltitudeReached() && TargetPoint.y > Position.y) - { - Debug.Log(this + " maxFlyAltitude has reached"); - ChangeTarget("Y"); - } - TurnToTarget(); - MoveToTarget(); - } - else - { - ChangeTarget(); - } - } - } - - public void OnTriggerEnter(Collider collider) - { - Debug.Log(this + " OnTriggerEnter(Collider collider)"); - - if (collider.gameObject.tag == TagManager.GROUND) - { - ChangeTarget("Y"); - if (Random.Range(1, 100) > 50) SitDown(); - } - } - - private void SitDown() - { - Debug.Log(this + " SitDown()"); - - isSitting = true; - sittingTimer = Random.Range(1.5f, 4f); - - Debug.Log(this+ " sittingTimer: " + sittingTimer); - } - - private void ChangeTarget(string axis = null) - { - if (axis == null) TargetPoint = objData.NewTargetPoint(Position); - else TargetPoint = objData.NewTargetPointInOppositeDirection(Position, TargetPoint - objTransform.position, axis); - } - - private void TurnToTarget() - { - objTransform.rotation = objData.Turn(objTransform, TargetPoint); - } - - private void MoveToTarget() - { - Position = objData.Move(Position, TargetPoint); - } - - private bool MaxAltitudeReached() - { - return Position.y >= maxFlyAltitude; - } + public void Execute() => objData.Act(this); + public void OnTriggerEnter(Collider collider) => objData.TriggerEnter(collider, this); #endregion } From 5de471fef7ade28f4daa6e10818d44727e21bfe7 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Tue, 27 Oct 2020 16:50:45 +0300 Subject: [PATCH 19/23] WIP rotate around butterfly actions --- Assets/Resources/Butterfly.prefab | 4 +- .../MVC/Butterfly/ButterflyData.cs | 82 ++++++++++++++++--- .../MVC/Butterfly/ButterflyModel.cs | 25 ++---- 3 files changed, 83 insertions(+), 28 deletions(-) diff --git a/Assets/Resources/Butterfly.prefab b/Assets/Resources/Butterfly.prefab index 1a0158680..8b031aba7 100644 --- a/Assets/Resources/Butterfly.prefab +++ b/Assets/Resources/Butterfly.prefab @@ -289,7 +289,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2770142703575531339} - m_LocalRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} + m_LocalRotation: {x: 0, y: 0.8660254, z: -0.5, w: 0} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: @@ -300,7 +300,7 @@ Transform: - {fileID: 4344415998316415568} m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 60, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 60, y: 180, z: 0} --- !u!114 &1670040105410703657 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 6d6de2d68..2470f994b 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -30,26 +30,65 @@ public ButterflyData() public void Act(ButterflyModel model) { - if (model.IsSitting) + Vector2 forward2D = new Vector2(model.ObjTransform.forward.x, model.ObjTransform.forward.z).normalized; + Vector2 right2D = new Vector2(forward2D.y, -forward2D.x); + + Vector2 circlePoint2D = new Vector2(model.CirclePoint.x, model.CirclePoint.z); + Vector2 butterflyPosition2D = new Vector2(model.Position.x, model.Position.z); + + Vector3 circlePointDirection = model.CirclePoint - model.Position; + Vector2 circlePointDirection2D = circlePoint2D - butterflyPosition2D; + + Vector3 targetDirection = model.TargetPoint - model.Position; + Vector2 targetDirection2D = new Vector2(model.TargetPoint.x, model.TargetPoint.z); + + if (model.IsCircling) { - model.SittingTimer -= Time.deltaTime; - if (model.SittingTimer <= 0) model.IsSitting = false; + model.ObjTransform.RotateAround(model.CirclePoint, Vector3.up * model.RotateAroundDirection, 8/circlePointDirection2D.magnitude); //скорость разворота вынести в структуру? + + Vector3 circlePointDirectionRotate = Quaternion.AngleAxis(-90 * model.RotateAroundDirection, Vector3.up) * circlePointDirection; + Vector3 newDirection = Vector3.RotateTowards(model.ObjTransform.forward, circlePointDirectionRotate, Struct.TurnSpeed, 0.0f); + newDirection.y = -sin60; + model.ObjTransform.rotation = Quaternion.LookRotation(newDirection); + + float dot = Vector2.Dot(forward2D, targetDirection2D.normalized); + if (dot > 0.99f) model.IsCircling = false; } else { - if (model.Position != model.TargetPoint) + if (model.IsSitting) { - if (model.Position.y >= model.MaxFlyAltitude && model.TargetPoint.y > model.Position.y) + model.SittingTimer -= Time.deltaTime; + if (model.SittingTimer <= 0) { - Debug.Log(this + " maxFlyAltitude has reached"); - model.TargetPoint = NewTargetPointInOppositeDirection(model.Position, model.TargetPoint - model.Position, "Y"); + model.IsSitting = false; + model.IsCircling = false; } - model.Rotation = Turn(model.TargetPoint, model.Position, model.Forward); - model.Position = Move(model.TargetPoint, model.Position); } else { - model.TargetPoint = NewTargetPoint(model.Position); + if (model.Position != model.TargetPoint) + { + if (model.Position.y >= model.MaxFlyAltitude && model.TargetPoint.y > model.Position.y) + { + Debug.Log(this + " maxFlyAltitude has reached"); + model.TargetPoint = NewTargetPointInOppositeDirection(model.Position, model.TargetPoint - model.Position, "Y"); + model.IsCircling = false; + } + model.ObjTransform.rotation = Turn(model.TargetPoint, model.Position, model.ObjTransform.forward); + model.Position = Move(model.TargetPoint, model.Position); + } + else + { + model.TargetPoint = NewTargetPoint(model.Position); + model.CirclePoint = NewCirclePoint(model.Position); + model.IsCircling = true; + + circlePoint2D = new Vector2(model.CirclePoint.x, model.CirclePoint.z); + circlePointDirection2D = circlePoint2D - butterflyPosition2D; + if (Vector2.Dot(right2D, circlePointDirection2D) > 0) model.RotateAroundDirection = 1; + else model.RotateAroundDirection = -1; + } } } } @@ -120,5 +159,28 @@ private float GetRandomCoord(float currentCoord, float? directionCoord = null) return Random.Range(currentCoord - Struct.MaxDistanceFromCurrentPosition, currentCoord + Struct.MaxDistanceFromCurrentPosition); ; } + private Vector3 NewCirclePoint(Vector3 currentPosition) + { + float x = GetRandomCoordForCircle(currentPosition.x); + float y = GetRandomCoordForCircle(0); //!!для теста + float z = GetRandomCoordForCircle(currentPosition.z); + return new Vector3(x, y, z); + } + + private float GetRandomCoordForCircle(float coord, float? forwardCoord = null) + { + //float centerDistance = 3; + //if (forwardCoord.HasValue && forwardCoord.Value != 0) + //{ + // if (forwardCoord > 0) return Random.Range(coord - centerDistance, coord - 1); + // else return Random.Range(coord + 1, coord + centerDistance); + //} + + int sign = 1; + if (Random.Range(1, 100) > 50) sign = -sign; + float random = Random.Range(1, 2); + return coord + random * sign; + } + #endregion } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index 430ce8aa1..f5b8337d1 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -7,11 +7,15 @@ public class ButterflyModel #region Fields private ButterflyData objData; - private Transform objTransform; + public Transform ObjTransform; public float SittingTimer = 0.00f; public bool IsSitting = false; + public bool IsCircling = false; + public Vector3 CirclePoint; + public int RotateAroundDirection; + public Vector3 TargetPoint; public readonly float MaxFlyAltitude; @@ -22,19 +26,8 @@ public class ButterflyModel public Vector3 Position { - get => objTransform.position; - set => objTransform.position = value; - } - - public Quaternion Rotation - { - get => objTransform.rotation; - set => objTransform.rotation = value; - } - - public Vector3 Forward - { - get => objTransform.forward; + get => ObjTransform.position; + set => ObjTransform.position = value; } #endregion @@ -45,8 +38,8 @@ public Vector3 Forward public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) { objData = butterflyData; - objTransform = butterflyObject.transform; - objTransform.localScale *= objData.Struct.Size; + ObjTransform = butterflyObject.transform; + ObjTransform.localScale *= objData.Struct.Size; MaxFlyAltitude = Position.y + objData.Struct.MaxFlyAltitudeFromSpawn; } From a00687f408bba876f287a74de0969229d3bae42d Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Tue, 27 Oct 2020 20:37:54 +0300 Subject: [PATCH 20/23] Add circular rotation for butterfly --- .../MVC/Butterfly/ButterflyData.cs | 96 ++++++++++--------- .../MVC/Butterfly/ButterflyModel.cs | 23 ++--- .../MVC/Butterfly/ButterflyStruct.cs | 12 +++ 3 files changed, 67 insertions(+), 64 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 2470f994b..886b24290 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -1,12 +1,13 @@ using BeastHunter; using UnityEngine; + [CreateAssetMenu(fileName = "NewButterfly", menuName = "CreateData/Butterfly", order = 0)] public class ButterflyData : ScriptableObject { #region Fields - private readonly float sin60 = Mathf.Sqrt(3) / 2; + private readonly float sin60 = Mathf.Sqrt(3) / 2; //for constant tilt of the butterfly public ButterflyStruct Struct; #endregion @@ -21,6 +22,9 @@ public ButterflyData() Struct.TurnSpeed = 0.03f; Struct.MaxFlyAltitudeFromSpawn = 5; Struct.MaxDistanceFromCurrentPosition = 10; + Struct.CircularRotationSpeed = 6; + Struct.MinCircleSize = 1; + Struct.MaxCircleSize = 3; } #endregion @@ -30,28 +34,15 @@ public ButterflyData() public void Act(ButterflyModel model) { - Vector2 forward2D = new Vector2(model.ObjTransform.forward.x, model.ObjTransform.forward.z).normalized; - Vector2 right2D = new Vector2(forward2D.y, -forward2D.x); - - Vector2 circlePoint2D = new Vector2(model.CirclePoint.x, model.CirclePoint.z); - Vector2 butterflyPosition2D = new Vector2(model.Position.x, model.Position.z); - - Vector3 circlePointDirection = model.CirclePoint - model.Position; - Vector2 circlePointDirection2D = circlePoint2D - butterflyPosition2D; - - Vector3 targetDirection = model.TargetPoint - model.Position; - Vector2 targetDirection2D = new Vector2(model.TargetPoint.x, model.TargetPoint.z); + Transform transform = model.ObjTransform; if (model.IsCircling) { - model.ObjTransform.RotateAround(model.CirclePoint, Vector3.up * model.RotateAroundDirection, 8/circlePointDirection2D.magnitude); //скорость разворота вынести в структуру? - - Vector3 circlePointDirectionRotate = Quaternion.AngleAxis(-90 * model.RotateAroundDirection, Vector3.up) * circlePointDirection; - Vector3 newDirection = Vector3.RotateTowards(model.ObjTransform.forward, circlePointDirectionRotate, Struct.TurnSpeed, 0.0f); - newDirection.y = -sin60; - model.ObjTransform.rotation = Quaternion.LookRotation(newDirection); + float rotateAroundSpeed = Struct.CircularRotationSpeed / model.CirclePoint.ToVectorXZ().DirectionTo(transform.position.ToVectorXZ()).magnitude; + transform.RotateAround(model.CirclePoint, Vector3.up * model.RotateAroundDirection, rotateAroundSpeed); + transform.rotation = CirclingRotate(model.CirclePoint, transform.position, transform.forward, model.RotateAroundDirection); - float dot = Vector2.Dot(forward2D, targetDirection2D.normalized); + float dot = Vector2.Dot(transform.forward.ToVectorXZ().normalized, model.TargetPoint.ToVectorXZ().normalized); if (dot > 0.99f) model.IsCircling = false; } else @@ -59,34 +50,28 @@ public void Act(ButterflyModel model) if (model.IsSitting) { model.SittingTimer -= Time.deltaTime; - if (model.SittingTimer <= 0) - { - model.IsSitting = false; - model.IsCircling = false; - } + if (model.SittingTimer <= 0) model.IsSitting = false; } else { - if (model.Position != model.TargetPoint) + if (transform.position != model.TargetPoint) { - if (model.Position.y >= model.MaxFlyAltitude && model.TargetPoint.y > model.Position.y) + if (transform.position.y >= model.MaxFlyAltitude && model.TargetPoint.y > transform.position.y) { Debug.Log(this + " maxFlyAltitude has reached"); - model.TargetPoint = NewTargetPointInOppositeDirection(model.Position, model.TargetPoint - model.Position, "Y"); - model.IsCircling = false; + model.TargetPoint = NewTargetPointInOppositeDirection(transform.position, model.TargetPoint.DirectionTo(transform.position), "Y"); } - model.ObjTransform.rotation = Turn(model.TargetPoint, model.Position, model.ObjTransform.forward); - model.Position = Move(model.TargetPoint, model.Position); + transform.rotation = Turn(model.TargetPoint, transform.position, transform.forward); + transform.position = Move(model.TargetPoint, transform.position); } else { - model.TargetPoint = NewTargetPoint(model.Position); - model.CirclePoint = NewCirclePoint(model.Position); + model.TargetPoint = NewTargetPoint(transform.position); + model.CirclePoint = NewCirclePoint(transform.position); model.IsCircling = true; - circlePoint2D = new Vector2(model.CirclePoint.x, model.CirclePoint.z); - circlePointDirection2D = circlePoint2D - butterflyPosition2D; - if (Vector2.Dot(right2D, circlePointDirection2D) > 0) model.RotateAroundDirection = 1; + Vector2 directionToCirclePoint = model.CirclePoint.ToVectorXZ().DirectionTo(transform.position.ToVectorXZ()); + if (Vector2.Dot(transform.forward.ToVectorXZ().TurnToRight(), directionToCirclePoint) > 0) model.RotateAroundDirection = 1; else model.RotateAroundDirection = -1; } } @@ -99,7 +84,7 @@ public void TriggerEnter(Collider collider, ButterflyModel model) if (collider.gameObject.tag == TagManager.GROUND) { - model.TargetPoint = NewTargetPointInOppositeDirection(model.Position, model.TargetPoint - model.Position, "Y"); + model.TargetPoint = NewTargetPointInOppositeDirection(model.ObjTransform.position, model.TargetPoint - model.ObjTransform.position, "Y"); if (Random.Range(1, 100) > 25) { Debug.Log(this + " is sitting"); @@ -125,6 +110,14 @@ private Quaternion Turn(Vector3 targetPoint, Vector3 position, Vector3 forward) return Quaternion.LookRotation(newDirection); } + private Quaternion CirclingRotate(Vector3 circlePoint, Vector3 position, Vector3 forward, int rotateAroundDirection) + { + Vector3 circlePointDirectionRotate90 = Quaternion.AngleAxis(-90 * rotateAroundDirection, Vector3.up) * circlePoint.DirectionTo(position); + Vector3 newDirection = Vector3.RotateTowards(forward, circlePointDirectionRotate90, Struct.TurnSpeed, 0.0f); + newDirection.y = -sin60; //keep constant tilt of the butterfly + return Quaternion.LookRotation(newDirection); + } + /// Return random coordinates within MaxDistanceFromCurrentPosition private Vector3 NewTargetPoint(Vector3 currentPosition) { @@ -162,25 +155,34 @@ private float GetRandomCoord(float currentCoord, float? directionCoord = null) private Vector3 NewCirclePoint(Vector3 currentPosition) { float x = GetRandomCoordForCircle(currentPosition.x); - float y = GetRandomCoordForCircle(0); //!!для теста float z = GetRandomCoordForCircle(currentPosition.z); - return new Vector3(x, y, z); + return new Vector3(x, currentPosition.y, z); } - private float GetRandomCoordForCircle(float coord, float? forwardCoord = null) + private float GetRandomCoordForCircle(float coord) { - //float centerDistance = 3; - //if (forwardCoord.HasValue && forwardCoord.Value != 0) - //{ - // if (forwardCoord > 0) return Random.Range(coord - centerDistance, coord - 1); - // else return Random.Range(coord + 1, coord + centerDistance); - //} - int sign = 1; if (Random.Range(1, 100) > 50) sign = -sign; - float random = Random.Range(1, 2); + float random = Random.Range(Struct.MinCircleSize, Struct.MaxCircleSize); return coord + random * sign; } #endregion } + + + +static class VectorExtension +{ + /// Convert Vector3 into Vector2 for XZ-plane + public static Vector2 ToVectorXZ(this Vector3 vector3) => new Vector2(vector3.x, vector3.z); + + /// Rotates the vector2 90 degrees + public static Vector2 TurnToRight(this Vector2 vector2) => new Vector2(vector2.y, -vector2.x); + + /// Returns the direction vector2 to the specified point + public static Vector2 DirectionTo(this Vector2 vector2, Vector2 target) => vector2 - target; + + /// Returns the direction vector3 to the specified point + public static Vector3 DirectionTo(this Vector3 vector3, Vector3 target) => vector3 - target; +} \ No newline at end of file diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index f5b8337d1..1083645e3 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -9,26 +9,15 @@ public class ButterflyModel private ButterflyData objData; public Transform ObjTransform; - public float SittingTimer = 0.00f; - public bool IsSitting = false; - - public bool IsCircling = false; - public Vector3 CirclePoint; - public int RotateAroundDirection; - public Vector3 TargetPoint; public readonly float MaxFlyAltitude; - #endregion - - - #region Properties + public Vector3 CirclePoint; + public int RotateAroundDirection; + public bool IsCircling = false; - public Vector3 Position - { - get => ObjTransform.position; - set => ObjTransform.position = value; - } + public float SittingTimer = 0.00f; + public bool IsSitting = false; #endregion @@ -40,7 +29,7 @@ public ButterflyModel(GameObject butterflyObject, ButterflyData butterflyData) objData = butterflyData; ObjTransform = butterflyObject.transform; ObjTransform.localScale *= objData.Struct.Size; - MaxFlyAltitude = Position.y + objData.Struct.MaxFlyAltitudeFromSpawn; + MaxFlyAltitude = ObjTransform.position.y + objData.Struct.MaxFlyAltitudeFromSpawn; } #endregion diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs index 0ba2cd068..cb9fc3748 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyStruct.cs @@ -28,6 +28,18 @@ public struct ButterflyStruct [Tooltip("Default: 5")] public float MaxFlyAltitudeFromSpawn; + /// butterfly fly speed during a circular motion + [Tooltip("Default: 6")] + public float CircularRotationSpeed; + + /// Minimum circle size that the butterfly will fly + [Tooltip("Default: 1")] + public float MinCircleSize; + + /// Maximum circle size that the butterfly will fly + [Tooltip("Default: 3")] + public float MaxCircleSize; + #endregion } From 2579cd7daf4dc7d116f335a1551b3f60ee96551e Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Tue, 27 Oct 2020 21:10:42 +0300 Subject: [PATCH 21/23] Fixed prefab --- Assets/Resources/Butterfly.prefab | 474 +++++++++--------- .../MVC/Butterfly/ButterflyData.cs | 8 +- 2 files changed, 250 insertions(+), 232 deletions(-) diff --git a/Assets/Resources/Butterfly.prefab b/Assets/Resources/Butterfly.prefab index 8b031aba7..48ed09c4d 100644 --- a/Assets/Resources/Butterfly.prefab +++ b/Assets/Resources/Butterfly.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &545940069974267311 +--- !u!1 &991646415075395470 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,9 +8,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 894217737310737308} - - component: {fileID: 4883835300943606062} - - component: {fileID: 6147490541358739798} + - component: {fileID: 8008568497130423293} + - component: {fileID: 8919402494214851087} + - component: {fileID: 8229769567978585665} m_Layer: 0 m_Name: UpperWing m_TagString: Untagged @@ -18,35 +18,35 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &894217737310737308 +--- !u!4 &8008568497130423293 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 545940069974267311} + m_GameObject: {fileID: 991646415075395470} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.5, y: 0.4, z: 0} m_LocalScale: {x: 1.3, y: 1.3, z: 0.3} m_Children: [] - m_Father: {fileID: 4344415998316415568} + m_Father: {fileID: 5591064814930782750} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &4883835300943606062 +--- !u!33 &8919402494214851087 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 545940069974267311} + m_GameObject: {fileID: 991646415075395470} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6147490541358739798 +--- !u!23 &8229769567978585665 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 545940069974267311} + m_GameObject: {fileID: 991646415075395470} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -77,7 +77,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!1 &1979392025056569226 +--- !u!1 &1046338145758687286 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -85,45 +85,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7150999648666034000} - - component: {fileID: 3294386859595215342} - - component: {fileID: 9148099870201204941} + - component: {fileID: 8489916887498396023} + - component: {fileID: 6879251021528824578} + - component: {fileID: 6211179014730079487} m_Layer: 0 - m_Name: TendrilRight + m_Name: LowerWing m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7150999648666034000 +--- !u!4 &8489916887498396023 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1979392025056569226} - m_LocalRotation: {x: 0, y: 0, z: -0.08715578, w: 0.9961947} - m_LocalPosition: {x: 0.06, y: 1.1, z: 0} - m_LocalScale: {x: 0.019999998, y: 0.14999999, z: 0.02} + m_GameObject: {fileID: 1046338145758687286} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.5, y: -0.5, z: 0} + m_LocalScale: {x: 1, y: 1, z: 0.3} m_Children: [] - m_Father: {fileID: 5030816804692696162} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -10} ---- !u!33 &3294386859595215342 + m_Father: {fileID: 814682776945506473} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6879251021528824578 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1979392025056569226} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &9148099870201204941 + m_GameObject: {fileID: 1046338145758687286} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6211179014730079487 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1979392025056569226} + m_GameObject: {fileID: 1046338145758687286} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -154,7 +154,39 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!1 &2600283560465639833 +--- !u!1 &1477585280903066572 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5591064814930782750} + m_Layer: 0 + m_Name: WingRight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5591064814930782750 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1477585280903066572} + m_LocalRotation: {x: 0, y: 0.2588191, z: 0, w: 0.9659258} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8008568497130423293} + - {fileID: 2404873315510811925} + m_Father: {fileID: 3636514719014338902} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 30, z: 0} +--- !u!1 &1871216191951174837 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -162,9 +194,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5331991084201789810} - - component: {fileID: 281392967243091949} - - component: {fileID: 2257079370663699835} + - component: {fileID: 2404873315510811925} + - component: {fileID: 5921926660788516552} + - component: {fileID: 4983986825351880441} m_Layer: 0 m_Name: LowerWing m_TagString: Untagged @@ -172,35 +204,35 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5331991084201789810 +--- !u!4 &2404873315510811925 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2600283560465639833} + m_GameObject: {fileID: 1871216191951174837} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.5, y: -0.5, z: 0} m_LocalScale: {x: 1, y: 1, z: 0.3} m_Children: [] - m_Father: {fileID: 5457386301066208319} + m_Father: {fileID: 5591064814930782750} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &281392967243091949 +--- !u!33 &5921926660788516552 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2600283560465639833} + m_GameObject: {fileID: 1871216191951174837} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &2257079370663699835 +--- !u!23 &4983986825351880441 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2600283560465639833} + m_GameObject: {fileID: 1871216191951174837} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -231,7 +263,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!1 &2693818167278716032 +--- !u!1 &2855194029055974746 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -239,31 +271,76 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 4344415998316415568} + - component: {fileID: 1901794325962471166} + - component: {fileID: 6405033900919574126} + - component: {fileID: 8701344842131264936} m_Layer: 0 - m_Name: WingLeft + m_Name: TendrilLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &4344415998316415568 +--- !u!4 &1901794325962471166 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2693818167278716032} - m_LocalRotation: {x: 0, y: 0.9659258, z: 0, w: 0.2588191} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 894217737310737308} - - {fileID: 6312318307262929698} - m_Father: {fileID: 5030816804692696162} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 150, z: 0} ---- !u!1 &2770142703575531339 + m_GameObject: {fileID: 2855194029055974746} + m_LocalRotation: {x: 0, y: 0, z: 0.08715578, w: 0.9961947} + m_LocalPosition: {x: -0.06, y: 1.1, z: 0} + m_LocalScale: {x: 0.02, y: 0.15, z: 0.02} + m_Children: [] + m_Father: {fileID: 3636514719014338902} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 10} +--- !u!33 &6405033900919574126 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2855194029055974746} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &8701344842131264936 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2855194029055974746} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!1 &2993840150745115514 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -271,10 +348,10 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5030816804692696162} - - component: {fileID: 1670040105410703657} - - component: {fileID: 4023219243949271405} - - component: {fileID: 7413386692111247059} + - component: {fileID: 827066373157184637} + - component: {fileID: 5367639586013753549} + - component: {fileID: 8047030731867282900} + - component: {fileID: 7655398171623067457} m_Layer: 0 m_Name: Butterfly m_TagString: Untagged @@ -282,58 +359,54 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &5030816804692696162 +--- !u!4 &827066373157184637 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2770142703575531339} - m_LocalRotation: {x: 0, y: 0.8660254, z: -0.5, w: 0} + m_GameObject: {fileID: 2993840150745115514} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 1531819724713776660} - - {fileID: 5457386301066208319} - - {fileID: 2168711585300898904} - - {fileID: 7150999648666034000} - - {fileID: 4344415998316415568} + - {fileID: 3636514719014338902} m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 60, y: 180, z: 0} ---- !u!114 &1670040105410703657 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5367639586013753549 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2770142703575531339} + m_GameObject: {fileID: 2993840150745115514} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 588a53f9e308795479b5deafb2409b71, type: 3} m_Name: m_EditorClassIdentifier: _type: 8 ---- !u!65 &4023219243949271405 +--- !u!65 &8047030731867282900 BoxCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2770142703575531339} + m_GameObject: {fileID: 2993840150745115514} m_Material: {fileID: 0} m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 - m_Size: {x: 1.4, y: 2, z: 0.6} - m_Center: {x: 0, y: 0.05, z: -0.2} ---- !u!54 &7413386692111247059 + m_Size: {x: 1.8195341, y: 1.3612261, z: 1.9005007} + m_Center: {x: 0, y: 0.11655903, z: -0.053422987} +--- !u!54 &7655398171623067457 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2770142703575531339} + m_GameObject: {fileID: 2993840150745115514} serializedVersion: 2 m_Mass: 1 m_Drag: 0 @@ -343,7 +416,7 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 ---- !u!1 &2913561834066350359 +--- !u!1 &3476534694907690316 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -351,76 +424,34 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6312318307262929698} - - component: {fileID: 4417315425856187374} - - component: {fileID: 5395915079086269785} + - component: {fileID: 3636514719014338902} m_Layer: 0 - m_Name: LowerWing + m_Name: Entity m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &6312318307262929698 +--- !u!4 &3636514719014338902 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2913561834066350359} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.5, y: -0.5, z: 0} - m_LocalScale: {x: 1, y: 1, z: 0.3} - m_Children: [] - m_Father: {fileID: 4344415998316415568} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &4417315425856187374 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2913561834066350359} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &5395915079086269785 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2913561834066350359} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 ---- !u!1 &3722613920731155380 + m_GameObject: {fileID: 3476534694907690316} + m_LocalRotation: {x: 0.5, y: 0, z: 0, w: 0.8660254} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 391456270969537645} + - {fileID: 5591064814930782750} + - {fileID: 1901794325962471166} + - {fileID: 7087493410217138242} + - {fileID: 814682776945506473} + m_Father: {fileID: 827066373157184637} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 60, y: 0, z: 0} +--- !u!1 &4624359324713433189 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -428,9 +459,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1348441151111380448} - - component: {fileID: 6656290196158661630} - - component: {fileID: 1216652622408399068} + - component: {fileID: 8526958045338143545} + - component: {fileID: 3692214335629163378} + - component: {fileID: 2122207419020544819} m_Layer: 0 m_Name: UpperWing m_TagString: Untagged @@ -438,35 +469,35 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1348441151111380448 +--- !u!4 &8526958045338143545 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3722613920731155380} + m_GameObject: {fileID: 4624359324713433189} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0.5, y: 0.4, z: 0} m_LocalScale: {x: 1.3, y: 1.3, z: 0.3} m_Children: [] - m_Father: {fileID: 5457386301066208319} + m_Father: {fileID: 814682776945506473} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6656290196158661630 +--- !u!33 &3692214335629163378 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3722613920731155380} + m_GameObject: {fileID: 4624359324713433189} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1216652622408399068 +--- !u!23 &2122207419020544819 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3722613920731155380} + m_GameObject: {fileID: 4624359324713433189} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -497,7 +528,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!1 &3885414432763725420 +--- !u!1 &7160409032735634229 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -505,45 +536,77 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 2168711585300898904} - - component: {fileID: 2683269277284920413} - - component: {fileID: 3887814950829812059} + - component: {fileID: 814682776945506473} m_Layer: 0 - m_Name: TendrilLeft + m_Name: WingLeft m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &2168711585300898904 +--- !u!4 &814682776945506473 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3885414432763725420} - m_LocalRotation: {x: 0, y: 0, z: 0.08715578, w: 0.9961947} - m_LocalPosition: {x: -0.06, y: 1.1, z: 0} - m_LocalScale: {x: 0.02, y: 0.15, z: 0.02} + m_GameObject: {fileID: 7160409032735634229} + m_LocalRotation: {x: 0, y: 0.9659258, z: 0, w: 0.2588191} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8526958045338143545} + - {fileID: 8489916887498396023} + m_Father: {fileID: 3636514719014338902} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 150, z: 0} +--- !u!1 &7362634901258417595 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 391456270969537645} + - component: {fileID: 303920579915094136} + - component: {fileID: 5584508775454098069} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &391456270969537645 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7362634901258417595} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.3, y: 1, z: 0.3} m_Children: [] - m_Father: {fileID: 5030816804692696162} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 10} ---- !u!33 &2683269277284920413 + m_Father: {fileID: 3636514719014338902} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &303920579915094136 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3885414432763725420} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &3887814950829812059 + m_GameObject: {fileID: 7362634901258417595} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &5584508775454098069 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3885414432763725420} + m_GameObject: {fileID: 7362634901258417595} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -574,7 +637,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!1 &6014764718050675059 +--- !u!1 &9028549881059421617 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -582,78 +645,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 5457386301066208319} + - component: {fileID: 7087493410217138242} + - component: {fileID: 3805552051775387363} + - component: {fileID: 1197430458320753393} m_Layer: 0 - m_Name: WingRight - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5457386301066208319 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6014764718050675059} - m_LocalRotation: {x: 0, y: 0.2588191, z: 0, w: 0.9659258} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 1348441151111380448} - - {fileID: 5331991084201789810} - m_Father: {fileID: 5030816804692696162} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 30, z: 0} ---- !u!1 &7411871362109957134 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1531819724713776660} - - component: {fileID: 8346595930141183654} - - component: {fileID: 4531053669480941680} - - component: {fileID: 1201391150634758703} - m_Layer: 0 - m_Name: Body + m_Name: TendrilRight m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1531819724713776660 +--- !u!4 &7087493410217138242 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7411871362109957134} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.3, y: 1, z: 0.3} + m_GameObject: {fileID: 9028549881059421617} + m_LocalRotation: {x: 0, y: 0, z: -0.08715578, w: 0.9961947} + m_LocalPosition: {x: 0.06, y: 1.1, z: 0} + m_LocalScale: {x: 0.019999998, y: 0.14999999, z: 0.02} m_Children: [] - m_Father: {fileID: 5030816804692696162} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8346595930141183654 + m_Father: {fileID: 3636514719014338902} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -10} +--- !u!33 &3805552051775387363 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7411871362109957134} - m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &4531053669480941680 + m_GameObject: {fileID: 9028549881059421617} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1197430458320753393 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7411871362109957134} + m_GameObject: {fileID: 9028549881059421617} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -684,17 +714,3 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 ---- !u!136 &1201391150634758703 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7411871362109957134} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - m_Radius: 0.5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 886b24290..41810d382 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -7,7 +7,7 @@ public class ButterflyData : ScriptableObject { #region Fields - private readonly float sin60 = Mathf.Sqrt(3) / 2; //for constant tilt of the butterfly + //private readonly float sin60 = Mathf.Sqrt(3) / 2; //for constant tilt of the butterfly public ButterflyStruct Struct; #endregion @@ -106,7 +106,8 @@ private Quaternion Turn(Vector3 targetPoint, Vector3 position, Vector3 forward) { Vector3 targetDirection = targetPoint - position; Vector3 newDirection = Vector3.RotateTowards(forward, targetDirection, Struct.TurnSpeed, 0.0f); - newDirection.y = -sin60; //keep constant tilt of the butterfly + //newDirection.y = -sin60; //keep constant tilt of the butterfly + newDirection.y = forward.y; return Quaternion.LookRotation(newDirection); } @@ -114,7 +115,8 @@ private Quaternion CirclingRotate(Vector3 circlePoint, Vector3 position, Vector3 { Vector3 circlePointDirectionRotate90 = Quaternion.AngleAxis(-90 * rotateAroundDirection, Vector3.up) * circlePoint.DirectionTo(position); Vector3 newDirection = Vector3.RotateTowards(forward, circlePointDirectionRotate90, Struct.TurnSpeed, 0.0f); - newDirection.y = -sin60; //keep constant tilt of the butterfly + //newDirection.y = -sin60; //keep constant tilt of the butterfly + newDirection.y = forward.y; return Quaternion.LookRotation(newDirection); } From 489e424390c7c9928eba956362bf1fe0ac3f83f9 Mon Sep 17 00:00:00 2001 From: Olga Nazarova Date: Tue, 27 Oct 2020 21:46:14 +0300 Subject: [PATCH 22/23] Update ButterflyData.cs --- Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs | 3 --- 1 file changed, 3 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 41810d382..24a3f07c1 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -7,7 +7,6 @@ public class ButterflyData : ScriptableObject { #region Fields - //private readonly float sin60 = Mathf.Sqrt(3) / 2; //for constant tilt of the butterfly public ButterflyStruct Struct; #endregion @@ -106,7 +105,6 @@ private Quaternion Turn(Vector3 targetPoint, Vector3 position, Vector3 forward) { Vector3 targetDirection = targetPoint - position; Vector3 newDirection = Vector3.RotateTowards(forward, targetDirection, Struct.TurnSpeed, 0.0f); - //newDirection.y = -sin60; //keep constant tilt of the butterfly newDirection.y = forward.y; return Quaternion.LookRotation(newDirection); } @@ -115,7 +113,6 @@ private Quaternion CirclingRotate(Vector3 circlePoint, Vector3 position, Vector3 { Vector3 circlePointDirectionRotate90 = Quaternion.AngleAxis(-90 * rotateAroundDirection, Vector3.up) * circlePoint.DirectionTo(position); Vector3 newDirection = Vector3.RotateTowards(forward, circlePointDirectionRotate90, Struct.TurnSpeed, 0.0f); - //newDirection.y = -sin60; //keep constant tilt of the butterfly newDirection.y = forward.y; return Quaternion.LookRotation(newDirection); } From f7e671cd4fd9c262d3717063eca9bfc90429bef7 Mon Sep 17 00:00:00 2001 From: Kamba1a Date: Thu, 29 Oct 2020 14:38:23 +0300 Subject: [PATCH 23/23] Minor fixes --- .../MVC/Butterfly/ButterflyData.cs | 21 ++++++++++++------- .../MVC/Butterfly/ButterflyModel.cs | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs index 24a3f07c1..25c3f06fb 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyData.cs @@ -7,6 +7,10 @@ public class ButterflyData : ScriptableObject { #region Fields + private const float SITTING_CHANCE = 75.00f; + private const float MIN_SITTING_TIME = 1.5f; + private const float MAX_SITTING_TIME = 4.0f; + public ButterflyStruct Struct; #endregion @@ -19,11 +23,11 @@ public ButterflyData() Struct.Size = 0.5f; Struct.Speed = 0.1f; Struct.TurnSpeed = 0.03f; - Struct.MaxFlyAltitudeFromSpawn = 5; - Struct.MaxDistanceFromCurrentPosition = 10; - Struct.CircularRotationSpeed = 6; - Struct.MinCircleSize = 1; - Struct.MaxCircleSize = 3; + Struct.MaxFlyAltitudeFromSpawn = 5.0f; + Struct.MaxDistanceFromCurrentPosition = 10.0f; + Struct.CircularRotationSpeed = 6.0f; + Struct.MinCircleSize = 1.0f; + Struct.MaxCircleSize = 3.0f; } #endregion @@ -70,7 +74,8 @@ public void Act(ButterflyModel model) model.IsCircling = true; Vector2 directionToCirclePoint = model.CirclePoint.ToVectorXZ().DirectionTo(transform.position.ToVectorXZ()); - if (Vector2.Dot(transform.forward.ToVectorXZ().TurnToRight(), directionToCirclePoint) > 0) model.RotateAroundDirection = 1; + float dot = Vector2.Dot(transform.forward.ToVectorXZ().TurnToRight(), directionToCirclePoint); + if (dot > 0) model.RotateAroundDirection = 1; else model.RotateAroundDirection = -1; } } @@ -84,12 +89,12 @@ public void TriggerEnter(Collider collider, ButterflyModel model) if (collider.gameObject.tag == TagManager.GROUND) { model.TargetPoint = NewTargetPointInOppositeDirection(model.ObjTransform.position, model.TargetPoint - model.ObjTransform.position, "Y"); - if (Random.Range(1, 100) > 25) + if (Random.Range(1, 100) <= SITTING_CHANCE) { Debug.Log(this + " is sitting"); model.IsSitting = true; - model.SittingTimer = Random.Range(1.5f, 4f); + model.SittingTimer = Random.Range(MIN_SITTING_TIME, MAX_SITTING_TIME); Debug.Log(this + " sittingTimer: " + model.SittingTimer); } diff --git a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs index 1083645e3..7a4440d41 100644 --- a/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs +++ b/Assets/Scripts/ContextTest/MVC/Butterfly/ButterflyModel.cs @@ -16,7 +16,7 @@ public class ButterflyModel public int RotateAroundDirection; public bool IsCircling = false; - public float SittingTimer = 0.00f; + public float SittingTimer; public bool IsSitting = false; #endregion