From 1dfea0637daa1e071d2df4bfb4436350a21f6226 Mon Sep 17 00:00:00 2001 From: dddushesss <37773701+dddushesss@users.noreply.github.com> Date: Wed, 15 Dec 2021 19:42:13 +0300 Subject: [PATCH] Fixed character controller --- .../Character/Animator_Character.controller | 23 ------------------- Assets/Resources/Data/CameraData.asset | 4 ++-- Assets/Resources/Data/PlayerData.asset | 5 ++-- .../{CameraControl.meta => CamControl.meta} | 0 .../CameraControl.cs | 15 +++++++----- .../CameraControl.cs.meta | 0 Assets/Scripts/Chars/Player.cs | 12 +++++++--- Assets/Scripts/Chars/PlayerControl.cs | 10 +++++--- Assets/Scripts/Controller/GameInit.cs | 6 ++++- Assets/Scripts/Data/PlayerData.cs | 1 + Assets/Scripts/HexFiled/HexDirection.cs | 2 +- 11 files changed, 37 insertions(+), 41 deletions(-) rename Assets/Scripts/{CameraControl.meta => CamControl.meta} (100%) rename Assets/Scripts/{CameraControl => CamControl}/CameraControl.cs (73%) rename Assets/Scripts/{CameraControl => CamControl}/CameraControl.cs.meta (100%) diff --git a/Assets/Resources/1/Animation/Character/Animator_Character.controller b/Assets/Resources/1/Animation/Character/Animator_Character.controller index f7751d44..140f886f 100644 --- a/Assets/Resources/1/Animation/Character/Animator_Character.controller +++ b/Assets/Resources/1/Animation/Character/Animator_Character.controller @@ -313,28 +313,6 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1101 &-341059549419662850 -AnimatorStateTransition: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: - m_Conditions: [] - m_DstStateMachine: {fileID: 0} - m_DstState: {fileID: 9131620394910522952} - m_Solo: 0 - m_Mute: 0 - m_IsExit: 0 - serializedVersion: 3 - m_TransitionDuration: 0.25 - m_TransitionOffset: 0 - m_ExitTime: 0.53125 - m_HasExitTime: 1 - m_HasFixedDuration: 1 - m_InterruptionSource: 0 - m_OrderedInterruption: 1 - m_CanTransitionToSelf: 1 --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -570,7 +548,6 @@ AnimatorState: - {fileID: -6460354900618266653} - {fileID: -9165632119200558840} - {fileID: -528955148574366107} - - {fileID: -341059549419662850} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 diff --git a/Assets/Resources/Data/CameraData.asset b/Assets/Resources/Data/CameraData.asset index 393268bc..d81f0db2 100644 --- a/Assets/Resources/Data/CameraData.asset +++ b/Assets/Resources/Data/CameraData.asset @@ -12,5 +12,5 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 83b1020f31bf45569f5af6c77fc77d4e, type: 3} m_Name: CameraData m_EditorClassIdentifier: - offset: {x: 0, y: 0, z: 0} - smoothSpeed: 0.1 + offset: {x: -10, y: 15, z: -15} + smoothSpeed: 0.001 diff --git a/Assets/Resources/Data/PlayerData.asset b/Assets/Resources/Data/PlayerData.asset index 3fc16f43..c128e869 100644 --- a/Assets/Resources/Data/PlayerData.asset +++ b/Assets/Resources/Data/PlayerData.asset @@ -13,9 +13,10 @@ MonoBehaviour: m_Name: PlayerData m_EditorClassIdentifier: spawnPos: - x: 0 - z: 0 + x: 7 + z: 8 playerPrefab: {fileID: 7527582019267571087, guid: f102085e8bc4cad4992d43b84dee1055, type: 3} joystickView: {fileID: 4385872142190176059, guid: 4df6913b39f4979429158c344680d83f, type: 3} + Tick: 0.8 diff --git a/Assets/Scripts/CameraControl.meta b/Assets/Scripts/CamControl.meta similarity index 100% rename from Assets/Scripts/CameraControl.meta rename to Assets/Scripts/CamControl.meta diff --git a/Assets/Scripts/CameraControl/CameraControl.cs b/Assets/Scripts/CamControl/CameraControl.cs similarity index 73% rename from Assets/Scripts/CameraControl/CameraControl.cs rename to Assets/Scripts/CamControl/CameraControl.cs index ed53c943..1626dd8a 100644 --- a/Assets/Scripts/CameraControl/CameraControl.cs +++ b/Assets/Scripts/CamControl/CameraControl.cs @@ -1,9 +1,8 @@ using Controller; using Data; -using Runtime.Controller; using UnityEngine; -namespace CameraControl +namespace CamControl { public class CameraControl : IFixedExecute { @@ -13,14 +12,18 @@ namespace CameraControl private Vector3 _offset; private float _smoothSpeed; - public CameraControl(Camera camera, Transform target, CameraData cameraData) + public CameraControl(Camera camera, CameraData cameraData) { _camera = camera; - _target = target; + _offset = cameraData.offset; _smoothSpeed = cameraData.smoothSpeed; } - + + public void InitCameraControl(GameObject target) + { + _target = target.transform; + } public void FixedExecute() { if (_target == null) @@ -28,7 +31,7 @@ namespace CameraControl Vector3 desiredPosition = _target.position + _offset; Vector3 smothedPosition = Vector3.Lerp(_camera.transform.position, desiredPosition, _smoothSpeed * Time.deltaTime); - _camera.transform.position = smothedPosition; + _camera.transform.position = desiredPosition; _camera.transform.LookAt(_target); } } diff --git a/Assets/Scripts/CameraControl/CameraControl.cs.meta b/Assets/Scripts/CamControl/CameraControl.cs.meta similarity index 100% rename from Assets/Scripts/CameraControl/CameraControl.cs.meta rename to Assets/Scripts/CamControl/CameraControl.cs.meta diff --git a/Assets/Scripts/Chars/Player.cs b/Assets/Scripts/Chars/Player.cs index ee9a65f2..b1a02910 100644 --- a/Assets/Scripts/Chars/Player.cs +++ b/Assets/Scripts/Chars/Player.cs @@ -1,6 +1,8 @@ -using Data; +using System; +using Data; using HexFiled; using UnityEngine; +using Object = UnityEngine.Object; namespace Chars { @@ -12,6 +14,7 @@ namespace Chars private GameObject prefab; private HexCell _cell; private HexGrid _hexGrid; + public Action OnPlayerSpawned; public GameObject Playerinstance => _instance; @@ -29,8 +32,9 @@ namespace Chars if (_cell.GetNeighbor(direction)) { _cell = _cell.GetNeighbor(direction); - _instance.transform.Translate(_cell.transform.position); + _curentPosition = _cell.coordinates; + _instance.transform.localPosition = _cell.transform.localPosition; } } @@ -39,7 +43,9 @@ namespace Chars if (!_isAlive) { _cell = _hexGrid.GetCellFromCoord(_curentPosition); - _instance = Object.Instantiate(prefab, _cell.transform.position, Quaternion.identity); + _instance = Object.Instantiate(prefab, _cell.transform.parent); + _instance.transform.localPosition = _cell.transform.localPosition; + OnPlayerSpawned?.Invoke(_instance); } } diff --git a/Assets/Scripts/Chars/PlayerControl.cs b/Assets/Scripts/Chars/PlayerControl.cs index 58d8dfe0..c4584ba6 100644 --- a/Assets/Scripts/Chars/PlayerControl.cs +++ b/Assets/Scripts/Chars/PlayerControl.cs @@ -2,7 +2,6 @@ using Data; using HexFiled; using Runtime.Controller; -using UnityEditor.Callbacks; using UnityEngine; using Object = UnityEngine.Object; @@ -13,6 +12,8 @@ namespace Chars private Player _player; private FloatingJoystick _moveJoystick; private FloatingJoystick _attackJoystick; + private float _curTime; + private float _tick; public PlayerControl(Player player, PlayerData playerData) { @@ -20,12 +21,15 @@ namespace Chars var joyView = Object.Instantiate(playerData.joystickView); _moveJoystick = joyView.MoveJoystick; _attackJoystick = joyView.AttackJoystick; + _curTime = Time.time; + _tick = playerData.Tick; } public void Execute() { - if (_moveJoystick.Direction != Vector2.zero) + if (Time.time - _curTime >= _tick && _moveJoystick.Direction != Vector2.zero) { + _curTime = Time.time; _player.Move(VectorToDirection(_moveJoystick.Direction.normalized)); } } @@ -62,7 +66,7 @@ namespace Chars return HexDirection.NW; } - return HexDirection.NULL; + return HexDirection.W; } } } \ No newline at end of file diff --git a/Assets/Scripts/Controller/GameInit.cs b/Assets/Scripts/Controller/GameInit.cs index 8e6201e4..65255180 100644 --- a/Assets/Scripts/Controller/GameInit.cs +++ b/Assets/Scripts/Controller/GameInit.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using CamControl; using Chars; using HexFiled; using UnityEngine; @@ -23,8 +24,11 @@ namespace Controller PlayerControl playerControl = new PlayerControl(player, data.PlayerData); controllers.Add(playerControl); + CameraControl cameraControl = + new CameraControl(UnityEngine.Camera.main, data.CameraData); + controllers.Add(cameraControl); + player.OnPlayerSpawned += cameraControl.InitCameraControl; } - private void DoSomething(HexCell cell) { Debug.Log("Painted! " + cell.coordinates ); diff --git a/Assets/Scripts/Data/PlayerData.cs b/Assets/Scripts/Data/PlayerData.cs index df65e900..722d1474 100644 --- a/Assets/Scripts/Data/PlayerData.cs +++ b/Assets/Scripts/Data/PlayerData.cs @@ -10,5 +10,6 @@ namespace Data public HexCoordinates spawnPos; public GameObject playerPrefab; public PlayerControlView joystickView; + public float Tick; } } \ No newline at end of file diff --git a/Assets/Scripts/HexFiled/HexDirection.cs b/Assets/Scripts/HexFiled/HexDirection.cs index 893f3023..4aa742bf 100644 --- a/Assets/Scripts/HexFiled/HexDirection.cs +++ b/Assets/Scripts/HexFiled/HexDirection.cs @@ -1,7 +1,7 @@ namespace HexFiled { public enum HexDirection { - NE, E, SE, SW, W, NW, NULL + NE, E, SE, SW, W, NW } public static class HexDirectionExtensions