diff --git a/Assets/Resources/Data/ButterflyData.asset b/Assets/Resources/Data/ButterflyData.asset new file mode 100644 index 000000000..2c57b9530 --- /dev/null +++ b/Assets/Resources/Data/ButterflyData.asset @@ -0,0 +1,19 @@ +%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: bc91d10bd25a30f45b8dc86a5e109045, type: 3} + m_Name: ButterflyData + m_EditorClassIdentifier: + ButterflyStruct: + MoveSpeed: 1 + FlightRadius: 2 + Prefab: {fileID: 8239778560251154675, guid: 43dea1108edb3fd4eb24e34f86cfaaa1, + type: 3} diff --git a/Assets/Resources/Data/ButterflyData.asset.meta b/Assets/Resources/Data/ButterflyData.asset.meta new file mode 100644 index 000000000..e2b0c28f3 --- /dev/null +++ b/Assets/Resources/Data/ButterflyData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06b1365417ee608428186171b30a071e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/Data.asset b/Assets/Resources/Data/Data.asset index 18cbf56ae..863be9825 100644 --- a/Assets/Resources/Data/Data.asset +++ b/Assets/Resources/Data/Data.asset @@ -14,14 +14,8 @@ MonoBehaviour: m_EditorClassIdentifier: _sphereDataPath: SphereData _characterDataPath: CharacterData - _startDialogueDataPath: StartDialogueData - _dialogueSystemDataPath: DialogueSystemData - _giantMudCrabDataPath: GiantMudCrabData _rabbitDataPath: RabbitData + _butterflyDataPath: ButterflyData _feastPath: Weapons/FeastWeapon _jacketPath: Clothes/Jacket _cameraDataPath: CameraData - _rabbitDataPath: RabbitData - _questIndicatorDataPath: QuestIndicatorData - _questJournalDataPath: QuestJournalData - diff --git a/Assets/Resources/Data/Move.cs b/Assets/Resources/Data/Move.cs new file mode 100644 index 000000000..ffc8d1e15 --- /dev/null +++ b/Assets/Resources/Data/Move.cs @@ -0,0 +1,30 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Move : MonoBehaviour +{ + public Transform Center; + public float angle = 0; + + public float speed = 1; + public float radius = 1f; + + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + //transform.position = Vector3.MoveTowards(transform.position, target.position, Time.deltaTime); + angle += Time.deltaTime; + var x = Mathf.Cos(angle * speed) * radius; + var z = Mathf.Sin(angle * speed) * radius; + transform.position = new Vector3(x, Center.position.y, z) + Center.position; + + //transform.RotateAround(Center.position, Vector3.up, 10 * Time.deltaTime ); + } +} diff --git a/Assets/Resources/Data/Move.cs.meta b/Assets/Resources/Data/Move.cs.meta new file mode 100644 index 000000000..7c82644d2 --- /dev/null +++ b/Assets/Resources/Data/Move.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 32796c2fccb96304398f1bf9529b3341 +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 7d5142641..46f848772 100644 --- a/Assets/Scripts/Contexts/GameContext.cs +++ b/Assets/Scripts/Contexts/GameContext.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Assets.Scripts.EntityScripts.Example.Butterfly; using UnityEngine; namespace BeastHunter @@ -10,6 +11,7 @@ public sealed class GameContext : Contexts #region Fields public SphereModel SphereModel; + public ButterflyModel ButterflyModel; public CharacterModel CharacterModel; public InputModel InputModel; diff --git a/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs b/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs index e70ea79d3..1d56a59bc 100644 --- a/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs +++ b/Assets/Scripts/Controllers/BaseControllers/MainControllers.cs @@ -1,4 +1,6 @@ -namespace BeastHunter +using Assets.Scripts.EntityScripts.Example.Butterfly; + +namespace BeastHunter { public sealed class MainControllers : ControllersStart { @@ -21,13 +23,16 @@ private void AddInitializeControllers(GameContext context) //Add(context) where T : EnemyInitializeController //Add(new SphereInitilizeController(context)); - //Add(new IOInitializeController(context)); + // Add(new IOInitializeController(context)); Add(new CharacterInitilizeController(context)); - Add(new RabbitInitializeController(context)); + Add(new RabbitInitializeController(context)); + Add(new ButterflyInitilizeController(context)); } private void AddControllers(GameContext context) { + //Add(new SphereController(context)); + Add(new ButterflyController(context)); Add(new EnemyController(context)); Add(new TargetController(context)); Add(new InputController(context)); diff --git a/Assets/Scripts/Data/Data.cs b/Assets/Scripts/Data/Data.cs index 098c6621d..c08d19825 100644 --- a/Assets/Scripts/Data/Data.cs +++ b/Assets/Scripts/Data/Data.cs @@ -1,4 +1,5 @@ using System.IO; +using Assets.Scripts.EntityScripts.Example.Butterfly; using UnityEngine; @@ -10,14 +11,16 @@ public sealed class Data : ScriptableObject { [SerializeField] private string _sphereDataPath; [SerializeField] private string _characterDataPath; [SerializeField] private string _rabbitDataPath; + [SerializeField] private string _butterflyDataPath; [SerializeField] private string _feastPath; [SerializeField] private string _jacketPath; [SerializeField] private string _cameraDataPath; - + private static Data _instance; private static SphereData _sphereData; private static CharacterData _characterData; private static RabbitData _rabbitData; + private static ButterflyData _butterflyData; private static WeaponItem _feast; private static ClothItem _jacket; private static CameraData _cameraData; @@ -65,7 +68,17 @@ public static RabbitData RabbitData return _rabbitData; } } - + public static ButterflyData ButterflyData + { + get + { + if (_butterflyData == null) + { + _butterflyData = Load("Data/" + Instance._butterflyDataPath); + } + return _butterflyData; + } + } public static WeaponItem Feast { get { if (_feast == null) { diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly.meta b/Assets/Scripts/EntityScripts/Example/Butterfly.meta new file mode 100644 index 000000000..0a1a467af --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d66d8a5b2b57734696a2d949f6ea3b3 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/Butterfly.prefab b/Assets/Scripts/EntityScripts/Example/Butterfly/Butterfly.prefab new file mode 100644 index 000000000..0e67f62e4 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/Butterfly.prefab @@ -0,0 +1,93 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8239778560251154675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8969811764616920469} + - component: {fileID: 2480563093512411019} + - component: {fileID: 755557080889516838} + - component: {fileID: 3607247200987312626} + m_Layer: 0 + m_Name: Butterfly + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8969811764616920469 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8239778560251154675} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.7385025, y: 8.641604, z: 5.1330833} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2480563093512411019 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8239778560251154675} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &755557080889516838 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8239778560251154675} + 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: 2100000, guid: 0bd57d436f61a29468114c16b56af2e5, type: 2} + 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 &3607247200987312626 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8239778560251154675} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/Butterfly.prefab.meta b/Assets/Scripts/EntityScripts/Example/Butterfly/Butterfly.prefab.meta new file mode 100644 index 000000000..0dc0027d5 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/Butterfly.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 43dea1108edb3fd4eb24e34f86cfaaa1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyController.cs b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyController.cs new file mode 100644 index 000000000..7b3297953 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyController.cs @@ -0,0 +1,43 @@ +using System; +using BeastHunter; +using UnityEngine; + +namespace Assets.Scripts.EntityScripts.Example.Butterfly +{ + public sealed 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() + { + _context.ButterflyModel.Initilize(); + } + + #endregion + + + #region IAwake + + public void OnAwake() + { + + } + + #endregion + } +} diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyController.cs.meta b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyController.cs.meta new file mode 100644 index 000000000..4170ce7cf --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6c10aac436cbe8c438ef4abccabc6cb7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyData.cs b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyData.cs new file mode 100644 index 000000000..7380a8824 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyData.cs @@ -0,0 +1,34 @@ +using UnityEngine; + +namespace Assets.Scripts.EntityScripts.Example.Butterfly +{ + [CreateAssetMenu(fileName = "NewData", menuName = "CreateData/Butterfly", order = 4)] + public sealed class ButterflyData : ScriptableObject + { + #region Fields + + public ButterflyStruct ButterflyStruct; + private float _angle = 0; + + + + #endregion + + #region Metods + + public void Move(Transform transform, float speed, float radius) + { + + _angle += Time.deltaTime; + var x = Mathf.Cos(_angle * speed) * radius; + var z = Mathf.Sin(_angle * speed) * radius; + transform.position = new Vector3(x, 1f, z) + new Vector3(-3.58f, 1f, 15.43f); + + } + + + + #endregion + + } +} diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyData.cs.meta b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyData.cs.meta new file mode 100644 index 000000000..9e821bc51 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bc91d10bd25a30f45b8dc86a5e109045 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyInitilizeController.cs b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyInitilizeController.cs new file mode 100644 index 000000000..9231f0172 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyInitilizeController.cs @@ -0,0 +1,37 @@ +using BeastHunter; +using UnityEngine; + +namespace Assets.Scripts.EntityScripts.Example.Butterfly +{ + public sealed class ButterflyInitilizeController : IAwake + { + #region Field + + GameContext _context; + + #endregion + + #region ClassLifeCycle + + public ButterflyInitilizeController(GameContext context) + { + _context = context; + } + + #endregion + + #region IAwake + public void OnAwake() + { + var ButterflyData = Data.ButterflyData; + GameObject instance = GameObject.Instantiate(ButterflyData.ButterflyStruct.Prefab); + ButterflyModel Butterfly = new ButterflyModel(instance, ButterflyData); + _context.ButterflyModel = Butterfly; + } + + + #endregion + + + } +} diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyInitilizeController.cs.meta b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyInitilizeController.cs.meta new file mode 100644 index 000000000..285f33fef --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyInitilizeController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9082e4953d89e844eb8b721365e8b9be +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyModel.cs b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyModel.cs new file mode 100644 index 000000000..5b8528919 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyModel.cs @@ -0,0 +1,37 @@ +using UnityEngine; + +namespace Assets.Scripts.EntityScripts.Example.Butterfly +{ + public sealed class ButterflyModel + { + #region Properties + public SphereCollider SphereCollider { get; } + public Transform ButterflyTransform { get; } + public ButterflyData ButterflyData; + public ButterflyStruct ButterflyStruct; + + #endregion + + #region ClassLifeCycle + + public ButterflyModel(GameObject prefab, ButterflyData butterflydata) + { + ButterflyData = butterflydata; + ButterflyStruct = butterflydata.ButterflyStruct; + ButterflyTransform = prefab.transform; + SphereCollider = prefab.gameObject.GetComponent(); + } + + #endregion + + #region Metods + + public void Initilize() + { + ButterflyData.Move(ButterflyTransform, ButterflyStruct.MoveSpeed, ButterflyStruct.FlightRadius); + + } + + #endregion + } +} diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyModel.cs.meta b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyModel.cs.meta new file mode 100644 index 000000000..0bb48775d --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyModel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f4ffe1179d179d94c85878fd9cae8cad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyStruct.cs b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyStruct.cs new file mode 100644 index 000000000..c77c4aa96 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyStruct.cs @@ -0,0 +1,21 @@ +using System; +using UnityEngine; + +namespace Assets.Scripts.EntityScripts.Example.Butterfly +{ + [Serializable] + public struct ButterflyStruct + { + #region Fields + + public float MoveSpeed; + + public float FlightRadius; + + public GameObject Prefab; + + + + #endregion + } +} diff --git a/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyStruct.cs.meta b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyStruct.cs.meta new file mode 100644 index 000000000..796220510 --- /dev/null +++ b/Assets/Scripts/EntityScripts/Example/Butterfly/ButterflyStruct.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8924bd5bdca9b1647a2001590de67462 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: