diff --git a/Assets/_Project/Develop/Runtime/Constants/PathToResources.cs b/Assets/_Project/Develop/Runtime/Constants/PathToResources.cs index e242611..a36dc40 100644 --- a/Assets/_Project/Develop/Runtime/Constants/PathToResources.cs +++ b/Assets/_Project/Develop/Runtime/Constants/PathToResources.cs @@ -34,7 +34,7 @@ namespace Assets._Project.Develop.Runtime.Utilities.SceneManagement public static class Entity { - public const string TestEntity = "Entities/TestEntity"; + public const string Hero = "Entities/Hero"; public const string Ghost = "Entities/Ghost"; } diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/EntitiesFactory.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/EntitiesFactory.cs index d82c163..12ae260 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/EntitiesFactory.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/EntitiesFactory.cs @@ -27,16 +27,13 @@ namespace _Project.Develop.Runtime.Entities _playerInput = container.Resolve(); } - public Entity CreateGhostEntity(Vector3 position) + public Entity CreateHeroEntity(Vector3 position) { Entity entity = CreateEmpty(); - _monoEntitiesFactory.Create(entity, position, PathToResources.Entity.Ghost); + _monoEntitiesFactory.Create(entity, position, PathToResources.Entity.Hero); entity - .AddContactsDetectingMask(Layers.CharactersMask) - .AddContactCollidersBuffer(new Buffer(64)) - .AddContactEntitiesBuffer(new Buffer(64)) .AddMoveDirection() .AddRotateDirection() .AddMoveSpeed(new ReactiveVariable(10)) @@ -75,15 +72,79 @@ namespace _Project.Develop.Runtime.Entities .AddMustSelfRelease(mustSelfRelease); entity + .AddSystem(new MoveDirectionByInputSystem(_playerInput)) + .AddSystem(new RotateDirectionByMoveInputSystem(_playerInput)) + .AddSystem(new RigidbodyMovementSystem()) + .AddSystem(new RigidbodyRotationSystem()) .AddSystem(new ApplyDamageSystem()) + .AddSystem(new DeathSwitcherSystem()) + .AddSystem(new DeathProcessTimerSystem()) + .AddSystem(new DisableCollidersOnDeathSystem()) + .AddSystem(new SelfReleaseSystem(_entitiesLifeContext)); + + _entitiesLifeContext.Add(entity); + + return entity; + } + + public Entity CreateGhostEntity(Vector3 position) + { + Entity entity = CreateEmpty(); + + _monoEntitiesFactory.Create(entity, position, PathToResources.Entity.Ghost); + + entity + .AddContactsDetectingMask(Layers.CharactersMask) + .AddContactCollidersBuffer(new Buffer(64)) + .AddContactEntitiesBuffer(new Buffer(64)) + .AddMoveDirection() + .AddRotateDirection() + .AddMoveSpeed(new ReactiveVariable(10)) + .AddRotationSpeed(new ReactiveVariable(800)) + .AddMaxHealth(new ReactiveVariable(150)) + .AddCurrentHealth(new ReactiveVariable(150)) + .AddBodyContactDamage(new ReactiveVariable(50)) + .AddTakeDamageRequest() + .AddTakeDamageEvent() + .AddIsDead() + .AddIsMoving() + .AddInDeathProcess() + .AddDeathProcessInitialTime(new ReactiveVariable(2)) + .AddDeathProcessCurrentTime(); + + ICompositeCondition canMove = new CompositeCondition() + .Add(new FuncCondition(() => entity.IsDead.Value == false)); + + ICompositeCondition canRotate = new CompositeCondition() + .Add(new FuncCondition(() => entity.IsDead.Value == false)); + + ICompositeCondition mustDie = new CompositeCondition() + .Add(new FuncCondition(() => entity.CurrentHealth.Value <= 0)); + + ICompositeCondition mustSelfRelease = new CompositeCondition() + .Add(new FuncCondition(() => entity.IsDead.Value)) + .Add(new FuncCondition(() => entity.InDeathProcess.Value == false)); + + ICompositeCondition canApplyDamage = new CompositeCondition() + .Add(new FuncCondition(() => entity.IsDead.Value == false)); + + entity + .AddCanMove(canMove) + .AddCanRotate(canRotate) + .AddCanApplyDamage(canApplyDamage) + .AddMustDie(mustDie) + .AddMustSelfRelease(mustSelfRelease); + + entity .AddSystem(new BodyContactsDetectingSystem()) .AddSystem(new BodyContactsEntitiesFilterSystem(_collidersRegistryService)) - .AddSystem(new MoveDirectionByInputSystem(_playerInput)) - .AddSystem(new RotateDirectionByInputSystem(_playerInput)) + .AddSystem(new DealDamageOnContactSystem()) + .AddSystem(new ApplyDamageSystem()) .AddSystem(new RigidbodyMovementSystem()) .AddSystem(new RigidbodyRotationSystem()) .AddSystem(new DeathSwitcherSystem()) .AddSystem(new DeathProcessTimerSystem()) + .AddSystem(new DisableCollidersOnDeathSystem()) .AddSystem(new SelfReleaseSystem(_entitiesLifeContext)); _entitiesLifeContext.Add(entity); diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/Generated/EntityAPI.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/Generated/EntityAPI.cs index a7a25e5..b22bfdd 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/Generated/EntityAPI.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Entities/Generated/EntityAPI.cs @@ -403,6 +403,30 @@ namespace _Project.Develop.Runtime.Entities return AddComponent(new _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime.InDeathProcess() {Value = value}); } + public _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime.DisableCollidersOnDeath DisableCollidersOnDeathC => GetComponent<_Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime.DisableCollidersOnDeath>(); + + public System.Collections.Generic.List DisableCollidersOnDeath => DisableCollidersOnDeathC.Value; + + public bool TryGetDisableCollidersOnDeath(out System.Collections.Generic.List value) + { + bool result = TryGetComponent(out _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime.DisableCollidersOnDeath component); + if(result) + value = component.Value; + else + value = default(System.Collections.Generic.List); + return result; + } + + public _Project.Develop.Runtime.Entities.Entity AddDisableCollidersOnDeath() + { + return AddComponent(new _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime.DisableCollidersOnDeath() { Value = new System.Collections.Generic.List() }); + } + + public _Project.Develop.Runtime.Entities.Entity AddDisableCollidersOnDeath(System.Collections.Generic.List value) + { + return AddComponent(new _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime.DisableCollidersOnDeath() {Value = value}); + } + public _Project.Develop.Runtime.Logic.Gameplay.Features.Movement.MoveDirection MoveDirectionC => GetComponent<_Project.Develop.Runtime.Logic.Gameplay.Features.Movement.MoveDirection>(); public _Project.Develop.Runtime.Utils.ReactiveManagement.ReactiveVariable MoveDirection => MoveDirectionC.Value; @@ -671,5 +695,29 @@ namespace _Project.Develop.Runtime.Entities return AddComponent(new _Project.Develop.Runtime.Logic.Gameplay.Features.Damage.CanApplyDamage() {Value = value}); } + public _Project.Develop.Runtime.Logic.Gameplay.Features.Damage.BodyContactDamage BodyContactDamageC => GetComponent<_Project.Develop.Runtime.Logic.Gameplay.Features.Damage.BodyContactDamage>(); + + public _Project.Develop.Runtime.Utils.ReactiveManagement.ReactiveVariable BodyContactDamage => BodyContactDamageC.Value; + + public bool TryGetBodyContactDamage(out _Project.Develop.Runtime.Utils.ReactiveManagement.ReactiveVariable value) + { + bool result = TryGetComponent(out _Project.Develop.Runtime.Logic.Gameplay.Features.Damage.BodyContactDamage component); + if(result) + value = component.Value; + else + value = default(_Project.Develop.Runtime.Utils.ReactiveManagement.ReactiveVariable); + return result; + } + + public _Project.Develop.Runtime.Entities.Entity AddBodyContactDamage() + { + return AddComponent(new _Project.Develop.Runtime.Logic.Gameplay.Features.Damage.BodyContactDamage() { Value = new _Project.Develop.Runtime.Utils.ReactiveManagement.ReactiveVariable() }); + } + + public _Project.Develop.Runtime.Entities.Entity AddBodyContactDamage(_Project.Develop.Runtime.Utils.ReactiveManagement.ReactiveVariable value) + { + return AddComponent(new _Project.Develop.Runtime.Logic.Gameplay.Features.Damage.BodyContactDamage() {Value = value}); + } + } } diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/DamageComponents.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/DamageComponents.cs index a7d1644..de16a15 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/DamageComponents.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/DamageComponents.cs @@ -1,5 +1,6 @@ using _Project.Develop.Runtime.Entities; using _Project.Develop.Runtime.Utilities.Conditions; +using _Project.Develop.Runtime.Utils.ReactiveManagement; using _Project.Develop.Runtime.Utils.ReactiveManagement.Event; namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Damage @@ -9,4 +10,6 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Damage public class TakeDamageEvent : IEntityComponent { public ReactiveEvent Value; } public class CanApplyDamage : IEntityComponent { public ICompositeCondition Value; } + + public class BodyContactDamage : IEntityComponent { public ReactiveVariable Value; } } \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems.meta b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems.meta new file mode 100644 index 0000000..bbf1e59 --- /dev/null +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 184b10356b354fbb9d4ec3e182cbe8e5 +timeCreated: 1771676819 \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/ApplyDamageSystem.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/ApplyDamageSystem.cs similarity index 98% rename from Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/ApplyDamageSystem.cs rename to Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/ApplyDamageSystem.cs index 7ab87ac..2fddbb8 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/ApplyDamageSystem.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/ApplyDamageSystem.cs @@ -3,6 +3,7 @@ using _Project.Develop.Runtime.Entities; using _Project.Develop.Runtime.Utilities.Conditions; using _Project.Develop.Runtime.Utils.ReactiveManagement; using _Project.Develop.Runtime.Utils.ReactiveManagement.Event; +using UnityEngine; namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Damage { diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/ApplyDamageSystem.cs.meta b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/ApplyDamageSystem.cs.meta similarity index 100% rename from Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/ApplyDamageSystem.cs.meta rename to Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/ApplyDamageSystem.cs.meta diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/DealDamageOnContactSystem.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/DealDamageOnContactSystem.cs new file mode 100644 index 0000000..cc63c01 --- /dev/null +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/DealDamageOnContactSystem.cs @@ -0,0 +1,56 @@ +using System.Collections.Generic; +using _Project.Develop.Runtime.Entities; +using _Project.Develop.Runtime.Utilities; +using _Project.Develop.Runtime.Utils.ReactiveManagement; +using _Project.Develop.Runtime.Utils.ReactiveManagement.Event; +using UnityEngine; + +namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Damage +{ + public class DealDamageOnContactSystem: IInitializableSystem, IUpdatableSystem + { + private Entity _entity; + private Buffer _contacts; + private ReactiveVariable _damage; + + private List _processedEntities; + + public void OnInit(Entity entity) + { + _entity = entity; + _contacts = entity.ContactEntitiesBuffer; + _damage = entity.BodyContactDamage; + + _processedEntities = new List(_contacts.Items.Length); + } + + public void OnUpdate(float deltaTime) + { + for (int i = 0; i < _contacts.Count; i++) + { + Entity contactEntity = _contacts.Items[i]; + + if(_processedEntities.Contains(contactEntity) == false) + { + _processedEntities.Add(contactEntity); + + if (contactEntity.TryGetTakeDamageRequest(out ReactiveEvent takeDamageRequest)) + takeDamageRequest.Invoke(_damage.Value); + } + } + + for (int i = _processedEntities.Count - 1; i >= 0; i--) + if (ContainInContacts(_processedEntities[i]) == false) + _processedEntities.RemoveAt(i); + } + + private bool ContainInContacts(Entity entity) + { + for (int i = 0; i < _contacts.Count; i++) + if (_contacts.Items[i] == entity) + return true; + + return false; + } + } +} \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/DealDamageOnContactSystem.cs.meta b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/DealDamageOnContactSystem.cs.meta new file mode 100644 index 0000000..7f9d855 --- /dev/null +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Damage/Systems/DealDamageOnContactSystem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: b87d3d31c8d940df81767830621e290f +timeCreated: 1771676878 \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByInputSystem.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByMoveInputSystem.cs similarity index 81% rename from Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByInputSystem.cs rename to Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByMoveInputSystem.cs index b8cc4c8..e49aa9f 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByInputSystem.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByMoveInputSystem.cs @@ -5,13 +5,13 @@ using UnityEngine; namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Movement { - public class RotateDirectionByInputSystem : IInitializableSystem, IUpdatableSystem + public class RotateDirectionByMoveInputSystem : IInitializableSystem, IUpdatableSystem { private readonly IPlayerInput _playerInput; private ReactiveVariable _rotateDirection; - public RotateDirectionByInputSystem(IPlayerInput playerInput) + public RotateDirectionByMoveInputSystem(IPlayerInput playerInput) { _playerInput = playerInput; } diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByInputSystem.cs.meta b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByMoveInputSystem.cs.meta similarity index 100% rename from Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByInputSystem.cs.meta rename to Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Input/RotateDirectionByMoveInputSystem.cs.meta diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/DisableCollidersOnDeathRegistrator.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/DisableCollidersOnDeathRegistrator.cs new file mode 100644 index 0000000..cbf6e54 --- /dev/null +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/DisableCollidersOnDeathRegistrator.cs @@ -0,0 +1,16 @@ +using System.Collections.Generic; +using _Project.Develop.Runtime.Entities; +using UnityEngine; + +namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime +{ + public class DisableCollidersOnDeathRegistrator : MonoEntityRegistrator + { + [SerializeField] private List _colliders; + + public override void Register(Entity entity) + { + entity.AddDisableCollidersOnDeath(_colliders); + } + } +} \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/DisableCollidersOnDeathRegistrator.cs.meta b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/DisableCollidersOnDeathRegistrator.cs.meta new file mode 100644 index 0000000..5bf6808 --- /dev/null +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/DisableCollidersOnDeathRegistrator.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 801746c26fe0478e80182979f64c22f2 +timeCreated: 1771677582 \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/LifetimeComponents.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/LifetimeComponents.cs index efd02fd..64b4f62 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/LifetimeComponents.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/LifetimeComponents.cs @@ -1,6 +1,8 @@ -using _Project.Develop.Runtime.Entities; +using System.Collections.Generic; +using _Project.Develop.Runtime.Entities; using _Project.Develop.Runtime.Utilities.Conditions; using _Project.Develop.Runtime.Utils.ReactiveManagement; +using UnityEngine; namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime { @@ -14,4 +16,6 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime public class DeathProcessInitialTime : IEntityComponent { public ReactiveVariable Value; } public class DeathProcessCurrentTime : IEntityComponent { public ReactiveVariable Value; } public class InDeathProcess : IEntityComponent { public ReactiveVariable Value; } + + public class DisableCollidersOnDeath : IEntityComponent { public List Value; } } \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/Systems/DisableCollidersOnDeathSystem.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/Systems/DisableCollidersOnDeathSystem.cs new file mode 100644 index 0000000..c393484 --- /dev/null +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/Systems/DisableCollidersOnDeathSystem.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using _Project.Develop.Runtime.Entities; +using _Project.Develop.Runtime.Utils.ReactiveManagement; +using UnityEngine; + +namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Lifetime.Systems +{ + public class DisableCollidersOnDeathSystem : IInitializableSystem, IDisposableSystem + { + private List _colliders; + private ReactiveVariable _isDead; + + private IDisposable _isDeadChangedDisposable; + + public void OnInit(Entity entity) + { + _colliders = entity.DisableCollidersOnDeath; + _isDead = entity.IsDead; + + _isDeadChangedDisposable = _isDead.Subscribe(OnIsDeadChanged); + } + + private void OnIsDeadChanged(bool arg1, bool isDead) + { + if (isDead) + foreach (Collider collider in _colliders) + collider.enabled = false; + } + + public void OnDispose() + { + _isDeadChangedDisposable.Dispose(); + } + } +} \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/Systems/DisableCollidersOnDeathSystem.cs.meta b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/Systems/DisableCollidersOnDeathSystem.cs.meta new file mode 100644 index 0000000..fdb421a --- /dev/null +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Lifetime/Systems/DisableCollidersOnDeathSystem.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 79df8b8c7f584c9aafa1e98fea894da6 +timeCreated: 1771677719 \ No newline at end of file diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistratorEntityRegistrator.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistrator.cs similarity index 79% rename from Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistratorEntityRegistrator.cs rename to Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistrator.cs index b53063f..63e76cd 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistratorEntityRegistrator.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistrator.cs @@ -3,7 +3,7 @@ using UnityEngine; namespace _Project.Develop.Runtime.Logic.Gameplay.Features.Sensors { - public class CapsuleColliderRegistratorEntityRegistrator : MonoEntityRegistrator + public class CapsuleColliderRegistrator : MonoEntityRegistrator { [SerializeField] private CapsuleCollider _collider; diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistratorEntityRegistrator.cs.meta b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistrator.cs.meta similarity index 100% rename from Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistratorEntityRegistrator.cs.meta rename to Assets/_Project/Develop/Runtime/Logic/Gameplay/Features/Sensors/CapsuleColliderRegistrator.cs.meta diff --git a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Infrastructure/TestGameplay.cs b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Infrastructure/TestGameplay.cs index 600af52..adb53f0 100644 --- a/Assets/_Project/Develop/Runtime/Logic/Gameplay/Infrastructure/TestGameplay.cs +++ b/Assets/_Project/Develop/Runtime/Logic/Gameplay/Infrastructure/TestGameplay.cs @@ -10,8 +10,6 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features private DIContainer _container; private EntitiesFactory _entitiesFactory; - private Entity _entity; - private bool _isRunning; public void Initialize(DIContainer container) @@ -24,7 +22,8 @@ namespace _Project.Develop.Runtime.Logic.Gameplay.Features public void Run() { - _entity = _entitiesFactory.CreateGhostEntity(Vector3.zero); + _entitiesFactory.CreateGhostEntity(Vector3.zero + Vector3.forward * 5); + _entitiesFactory.CreateHeroEntity(Vector3.zero); _isRunning = true; } diff --git a/Assets/_Project/Resources/Entities/CharacterOriginal.prefab b/Assets/_Project/Resources/Entities/CharacterOriginal.prefab new file mode 100644 index 0000000..4018963 --- /dev/null +++ b/Assets/_Project/Resources/Entities/CharacterOriginal.prefab @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1653930396661636771 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5353776208456886876} + m_Layer: 0 + m_Name: ViewContainer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5353776208456886876 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1653930396661636771} + serializedVersion: 2 + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7422541279803945012} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8474685674288101080 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7422541279803945012} + - component: {fileID: 7955792829917902945} + m_Layer: 3 + m_Name: CharacterOriginal + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7422541279803945012 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8474685674288101080} + serializedVersion: 2 + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5353776208456886876} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &7955792829917902945 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8474685674288101080} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0fa38a390e3026e4da73b8535ef0c601, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/_Project/Resources/Entities/CharacterOriginal.prefab.meta b/Assets/_Project/Resources/Entities/CharacterOriginal.prefab.meta new file mode 100644 index 0000000..891319a --- /dev/null +++ b/Assets/_Project/Resources/Entities/CharacterOriginal.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/Resources/Entities/Ghost.prefab b/Assets/_Project/Resources/Entities/Ghost.prefab index bfcc6a9..7be24f0 100644 --- a/Assets/_Project/Resources/Entities/Ghost.prefab +++ b/Assets/_Project/Resources/Entities/Ghost.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &6238656115224209256 +--- !u!1 &1178908605964963484 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,9 +8,9 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3482713960133750432} - - component: {fileID: 8626195749695403117} - - component: {fileID: 4032663711928052727} + - component: {fileID: 7555407760269684425} + - component: {fileID: 1634010826990671319} + - component: {fileID: 3175649693318226751} m_Layer: 0 m_Name: Sphere m_TagString: Untagged @@ -18,36 +18,36 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3482713960133750432 +--- !u!4 &7555407760269684425 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6238656115224209256} + m_GameObject: {fileID: 1178908605964963484} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.3, z: 0.22} - m_LocalScale: {x: 1, y: 0.57116395, z: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.015, z: 0.094} + m_LocalScale: {x: 1, y: 0.8659927, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 3729330896622341159} + m_Father: {fileID: 1769490595927411179} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8626195749695403117 +--- !u!33 &1634010826990671319 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6238656115224209256} + m_GameObject: {fileID: 1178908605964963484} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &4032663711928052727 +--- !u!23 &3175649693318226751 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6238656115224209256} + m_GameObject: {fileID: 1178908605964963484} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -83,7 +83,7 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6344150908040749382 +--- !u!1 &3463170684557075332 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -91,66 +91,251 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 3712880853837558930} - - component: {fileID: 994812354150526974} - - component: {fileID: 4514683344761790839} - - component: {fileID: 7031502133547492830} - - component: {fileID: 6565447619237781124} - - component: {fileID: 8643992716899077862} - - component: {fileID: 8777523951741640921} + - component: {fileID: 4021134161394605113} + - component: {fileID: 5288518328022340557} + - component: {fileID: 1296507346518684765} m_Layer: 0 - m_Name: Ghost + m_Name: Body m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &3712880853837558930 +--- !u!4 &4021134161394605113 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6344150908040749382} + m_GameObject: {fileID: 3463170684557075332} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + 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_LocalScale: {x: 1, y: 0.58533114, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3729330896622341159} - m_Father: {fileID: 0} + m_Children: [] + m_Father: {fileID: 1769490595927411179} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!136 &994812354150526974 -CapsuleCollider: +--- !u!33 &5288518328022340557 +MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6344150908040749382} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 + m_GameObject: {fileID: 3463170684557075332} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1296507346518684765 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3463170684557075332} m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 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 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1001 &5963347870339261367 +PrefabInstance: + m_ObjectHideFlags: 0 serializedVersion: 2 - m_Radius: 0.5 - m_Height: 1.87 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!54 &4514683344761790839 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_Name + value: Ghost + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 5353776208456886876, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 4021134161394605113} + - targetCorrespondingSourceObject: {fileID: 5353776208456886876, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 7555407760269684425} + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 7287669950564087988} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 3427505548562437109} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 243501175247392074} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 4422967739020777235} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 6434875925373515566} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 2163109570078651387} + m_SourcePrefab: {fileID: 100100000, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, type: 3} +--- !u!4 &1769490595927411179 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5353776208456886876, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + m_PrefabInstance: {fileID: 5963347870339261367} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2836758634261632367 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + m_PrefabInstance: {fileID: 5963347870339261367} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7287669950564087988 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b7fdeece4c60497ea61a1006e47bfbc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3427505548562437109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b3d77209b50f4ecf9185ae250a76b909, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &243501175247392074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 801746c26fe0478e80182979f64c22f2, type: 3} + m_Name: + m_EditorClassIdentifier: + _colliders: + - {fileID: 2163109570078651387} +--- !u!114 &4422967739020777235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72015d8dc01449c1b86801cc47ccd4a1, type: 3} + m_Name: + m_EditorClassIdentifier: + _collider: {fileID: 2163109570078651387} +--- !u!54 &6434875925373515566 Rigidbody: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6344150908040749382} + m_GameObject: {fileID: 2836758634261632367} serializedVersion: 4 m_Mass: 1 m_Drag: 0 @@ -171,168 +356,26 @@ Rigidbody: m_Interpolate: 1 m_Constraints: 80 m_CollisionDetection: 0 ---- !u!114 &7031502133547492830 -MonoBehaviour: +--- !u!136 &2163109570078651387 +CapsuleCollider: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6344150908040749382} + m_GameObject: {fileID: 2836758634261632367} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 8 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0fa38a390e3026e4da73b8535ef0c601, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &6565447619237781124 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6344150908040749382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b7fdeece4c60497ea61a1006e47bfbc5, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &8643992716899077862 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6344150908040749382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b3d77209b50f4ecf9185ae250a76b909, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &8777523951741640921 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6344150908040749382} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 72015d8dc01449c1b86801cc47ccd4a1, type: 3} - m_Name: - m_EditorClassIdentifier: - _collider: {fileID: 994812354150526974} ---- !u!1 &7421563490521616768 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5801233178194481557} - - component: {fileID: 5626862109688605077} - - component: {fileID: 12644309328441543} - m_Layer: 0 - m_Name: Body - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5801233178194481557 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7421563490521616768} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 0.83449, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3729330896622341159} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5626862109688605077 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7421563490521616768} - m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &12644309328441543 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7421563490521616768} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 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 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &8220022131449611056 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3729330896622341159} - m_Layer: 0 - m_Name: View - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3729330896622341159 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8220022131449611056} - serializedVersion: 2 - 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_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5801233178194481557} - - {fileID: 3482713960133750432} - m_Father: {fileID: 3712880853837558930} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Radius: 0.5 + m_Height: 1.87 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/_Project/Resources/Entities/Hero.prefab b/Assets/_Project/Resources/Entities/Hero.prefab new file mode 100644 index 0000000..b43ecc2 --- /dev/null +++ b/Assets/_Project/Resources/Entities/Hero.prefab @@ -0,0 +1,381 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1178908605964963484 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7555407760269684425} + - component: {fileID: 1634010826990671319} + - component: {fileID: 3175649693318226751} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7555407760269684425 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178908605964963484} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.21, z: 0.22} + m_LocalScale: {x: 0.9145653, y: 0.9167472, z: 0.9145653} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1769490595927411179} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1634010826990671319 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178908605964963484} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3175649693318226751 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1178908605964963484} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 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 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &3463170684557075332 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4021134161394605113} + - component: {fileID: 5288518328022340557} + - component: {fileID: 1296507346518684765} + m_Layer: 0 + m_Name: Body + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4021134161394605113 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3463170684557075332} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 0.83449, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1769490595927411179} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5288518328022340557 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3463170684557075332} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1296507346518684765 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3463170684557075332} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 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 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1001 &5963347870339261367 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7422541279803945012, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + propertyPath: m_Name + value: Hero + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 5353776208456886876, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 4021134161394605113} + - targetCorrespondingSourceObject: {fileID: 5353776208456886876, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 7555407760269684425} + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 7287669950564087988} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 3427505548562437109} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 243501175247392074} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 4422967739020777235} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 6434875925373515566} + - targetCorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + insertIndex: -1 + addedObject: {fileID: 2163109570078651387} + m_SourcePrefab: {fileID: 100100000, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, type: 3} +--- !u!4 &1769490595927411179 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5353776208456886876, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + m_PrefabInstance: {fileID: 5963347870339261367} + m_PrefabAsset: {fileID: 0} +--- !u!1 &2836758634261632367 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8474685674288101080, guid: 3ff07ac6b3173eb45a2ebf7f8d2afb2f, + type: 3} + m_PrefabInstance: {fileID: 5963347870339261367} + m_PrefabAsset: {fileID: 0} +--- !u!114 &7287669950564087988 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b7fdeece4c60497ea61a1006e47bfbc5, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &3427505548562437109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b3d77209b50f4ecf9185ae250a76b909, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &243501175247392074 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 801746c26fe0478e80182979f64c22f2, type: 3} + m_Name: + m_EditorClassIdentifier: + _colliders: + - {fileID: 2163109570078651387} +--- !u!114 &4422967739020777235 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 72015d8dc01449c1b86801cc47ccd4a1, type: 3} + m_Name: + m_EditorClassIdentifier: + _collider: {fileID: 2163109570078651387} +--- !u!54 &6434875925373515566 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 1 + m_Constraints: 80 + m_CollisionDetection: 0 +--- !u!136 &2163109570078651387 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2836758634261632367} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Height: 1.87 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/_Project/Resources/Entities/Hero.prefab.meta b/Assets/_Project/Resources/Entities/Hero.prefab.meta new file mode 100644 index 0000000..9a9a9d5 --- /dev/null +++ b/Assets/_Project/Resources/Entities/Hero.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1611ae06cde6aa640a8b0e1e15b4657a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Project/Scenes/Gameplay.unity b/Assets/_Project/Scenes/Gameplay.unity index 542e9f2..3675f1b 100644 --- a/Assets/_Project/Scenes/Gameplay.unity +++ b/Assets/_Project/Scenes/Gameplay.unity @@ -136,7 +136,7 @@ GameObject: - component: {fileID: 92564819} - component: {fileID: 92564818} m_Layer: 0 - m_Name: Cube + m_Name: Ground m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 1c92a78..315b694 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -8,7 +8,7 @@ TagManager: - Default - TransparentFX - Ignore Raycast - - + - Characters - Water - UI -