Compare commits
2 Commits
8ca5097604
...
f36578c429
Author | SHA1 | Date | |
---|---|---|---|
f36578c429 | |||
75c890766c |
@ -335,6 +335,7 @@ MonoBehaviour:
|
||||
player2: {fileID: 2249596435903131710}
|
||||
scoreboard: {fileID: 634835458}
|
||||
isDuoMode: 1
|
||||
playerData: {fileID: 11400000, guid: 928d6efd735c3814d955e3f955a0264a, type: 2}
|
||||
--- !u!4 &70882853
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -533,6 +533,7 @@ MonoBehaviour:
|
||||
player2: {fileID: 0}
|
||||
scoreboard: {fileID: 634835458}
|
||||
isDuoMode: 0
|
||||
playerData: {fileID: 11400000, guid: 928d6efd735c3814d955e3f955a0264a, type: 2}
|
||||
--- !u!4 &93601729
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -7,7 +7,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9055f72a604bc3f4ba01bc120f0643d2, type: 3}
|
||||
m_Name: PlayerData
|
||||
@ -15,6 +15,6 @@ MonoBehaviour:
|
||||
<InvincibilityTime>k__BackingField: 600
|
||||
<JumpHeight>k__BackingField: 6
|
||||
<LaneSwitchSpeed>k__BackingField: 20
|
||||
<CurrentSpeed>k__BackingField: 10
|
||||
<InitialSpeed>k__BackingField: 10
|
||||
<SpeedAcceleration>k__BackingField: 0
|
||||
<CurrentSpeed>k__BackingField: 401.62177
|
||||
<SpeedAcceleration>k__BackingField: 1
|
||||
|
@ -1,13 +1,39 @@
|
||||
using System.Collections;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "PlayerData", menuName = "ScriptableObjects/Player")]
|
||||
public class PlayerData : ScriptableObject
|
||||
public sealed class PlayerData : ScriptableObject
|
||||
{
|
||||
[field: SerializeField] public int InvincibilityTime { get; private set; }
|
||||
// Serialize Fields
|
||||
[field: SerializeField] public int InvincibilityTime { get; protected set; }
|
||||
[field: SerializeField] public float JumpHeight { get; private set; }
|
||||
[field: SerializeField] public float LaneSwitchSpeed { get; private set; }
|
||||
[field: SerializeField] public float CurrentSpeed { get; set; }
|
||||
[field: SerializeField] public float InitialSpeed { get; private set; }
|
||||
[field: SerializeField] public float CurrentSpeed { get; private set; }
|
||||
[field: SerializeField] public float SpeedAcceleration { get; private set; }
|
||||
|
||||
// Other attributes
|
||||
private bool onPause = false;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
CurrentSpeed = InitialSpeed;
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
CurrentSpeed = InitialSpeed;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (!onPause)
|
||||
CurrentSpeed += SpeedAcceleration / 1000;
|
||||
}
|
||||
|
||||
public void isPaused(bool isPaused)
|
||||
{
|
||||
onPause = isPaused;
|
||||
}
|
||||
}
|
||||
|
@ -13,6 +13,7 @@ public class GameSession : MonoBehaviour,IResettable
|
||||
[SerializeField] [CanBeNull] private Player player2;
|
||||
[SerializeField] private Scoreboard scoreboard;
|
||||
[SerializeField] private Boolean isDuoMode;
|
||||
[SerializeField] private PlayerData playerData;
|
||||
|
||||
public static GameSession Instance { get; private set; }
|
||||
public WorldCurver Curver { get; private set; }
|
||||
@ -39,6 +40,7 @@ public class GameSession : MonoBehaviour,IResettable
|
||||
}
|
||||
private void Update()
|
||||
{
|
||||
playerData.Update();
|
||||
_player1InputTranslator.Tick();
|
||||
if (isDuoMode)
|
||||
{
|
||||
@ -46,8 +48,8 @@ public class GameSession : MonoBehaviour,IResettable
|
||||
}
|
||||
|
||||
Curver.Tick();
|
||||
// curver.SinCurveX();
|
||||
// Curver.SinCurveY();
|
||||
// curver.SinCurveX();
|
||||
// Curver.SinCurveY();
|
||||
//Curver.TurnWorldToLeft();
|
||||
}
|
||||
|
||||
@ -63,29 +65,25 @@ public class GameSession : MonoBehaviour,IResettable
|
||||
player2Holder.Init(true);
|
||||
_player2InputTranslator = new InputTranslator<KeyBinding>(player2Holder, true);
|
||||
}
|
||||
|
||||
playerData.Reset();
|
||||
}
|
||||
|
||||
public void AddCommandTranslator(ICommandTranslator translator, bool isPlayer2)
|
||||
{
|
||||
if (isPlayer2)
|
||||
{
|
||||
_player2InputTranslator.AddCommandTranslator(translator);
|
||||
}else
|
||||
{
|
||||
_player1InputTranslator.AddCommandTranslator(translator);
|
||||
}
|
||||
if (isPlayer2)
|
||||
{
|
||||
_player2InputTranslator.AddCommandTranslator(translator);
|
||||
}else
|
||||
{
|
||||
_player1InputTranslator.AddCommandTranslator(translator);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void PauseSession(bool isPaused)
|
||||
{
|
||||
if (isPaused)
|
||||
_speedAtPause = player1.playerData.CurrentSpeed;
|
||||
else
|
||||
{
|
||||
player1.playerData.CurrentSpeed = _speedAtPause;
|
||||
}
|
||||
|
||||
playerData.isPaused(isPaused);
|
||||
Time.timeScale = isPaused ? 0 : 1;
|
||||
if (!_isSessionPaused && _player1InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) && _player2InputTranslator.IsTranslationResticted(InputConstants.InGameCommands) )
|
||||
{
|
||||
@ -184,6 +182,7 @@ public class GameSession : MonoBehaviour,IResettable
|
||||
public void ResetToDefault()
|
||||
{
|
||||
PauseSession(false);
|
||||
playerData.Reset();
|
||||
if(player1 !=null)
|
||||
player1.ResetToDefault();
|
||||
if (isDuoMode && player2 != null)
|
||||
@ -191,4 +190,9 @@ public class GameSession : MonoBehaviour,IResettable
|
||||
player2.ResetToDefault();
|
||||
}
|
||||
}
|
||||
|
||||
public PlayerData GetPlayerData()
|
||||
{
|
||||
return this.playerData;
|
||||
}
|
||||
}
|
@ -34,11 +34,10 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
||||
|
||||
#region PlayerComponents
|
||||
|
||||
[SerializeField] internal PlayerData playerData;
|
||||
public PlayerData playerData;
|
||||
public IDamageable PlayerHealth { get; private set; }
|
||||
public Statistics PlayerStatictics { get; private set; }
|
||||
|
||||
public PlayerData PlayerData { get { return playerData; } }
|
||||
|
||||
#endregion
|
||||
|
||||
@ -48,14 +47,8 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
||||
|
||||
public LaneSystem LaneSystem
|
||||
{
|
||||
get
|
||||
{
|
||||
return laneSystem;
|
||||
}
|
||||
private set
|
||||
{
|
||||
laneSystem = value;
|
||||
}
|
||||
get => laneSystem;
|
||||
private set => laneSystem = value;
|
||||
}
|
||||
|
||||
|
||||
@ -72,6 +65,7 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
playerData = GameSession.Instance.GetPlayerData();
|
||||
GameSession.Instance.AddCommandTranslator(this, isPlayer2);
|
||||
animator = GetComponent<Animator>();
|
||||
if (animator)
|
||||
@ -82,7 +76,6 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
||||
PlayerStatictics = GetComponent<Statistics>();
|
||||
PlayerStateMachine = new PlayerStateMachine(this);
|
||||
InvincibilityTime = playerData.InvincibilityTime;
|
||||
playerData.CurrentSpeed = playerData.InitialSpeed;
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
@ -97,7 +90,6 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
||||
|
||||
private void Update()
|
||||
{
|
||||
playerData.CurrentSpeed += playerData.SpeedAcceleration / 1000;
|
||||
PlayerStateMachine.Tick();
|
||||
}
|
||||
|
||||
@ -176,7 +168,6 @@ public class Player : MonoBehaviour, IResettable, ICommandTranslator
|
||||
LaneSystem.ResetToDefault();
|
||||
Physics.SyncTransforms();
|
||||
ReloadAnimator();
|
||||
playerData.CurrentSpeed = playerData.InitialSpeed;
|
||||
}
|
||||
|
||||
public void TranslateCommand(ECommand command, PressedState state)
|
||||
|
@ -8,7 +8,7 @@ public abstract class MovingState : PlayerState
|
||||
private float speed; //SO
|
||||
private float laneSwitchSpeed; //SO
|
||||
protected const float gravity = -9.8f;
|
||||
private float invincibilityTime => playerSM.PlayerData.InvincibilityTime;
|
||||
private float invincibilityTime => playerSM.playerData.InvincibilityTime;
|
||||
public MovingState(PlayerStateMachine playerStateMachine) : base(playerStateMachine)
|
||||
{
|
||||
this.playerSM = playerStateMachine;
|
||||
|
@ -11,7 +11,7 @@ public abstract class PlayerState : State<Player>
|
||||
public PlayerState(PlayerStateMachine playerStateMachine)
|
||||
{
|
||||
playerSM = playerStateMachine;
|
||||
playerData = playerStateMachine.PlayerData;
|
||||
playerData = playerStateMachine.playerData;
|
||||
playerTransform = playerStateMachine.PlayerTransform;
|
||||
}
|
||||
public override void Tick()
|
||||
|
@ -4,14 +4,13 @@ using UnityEngine.Animations.Rigging;
|
||||
public class PlayerStateMachine : StateMachine<Player>
|
||||
{
|
||||
private Player player;
|
||||
private PlayerData playerData;
|
||||
public PlayerData playerData;
|
||||
private Transform playerTransform;
|
||||
public Transform PlayerTransform { get { return playerTransform; } }
|
||||
public PlayerData PlayerData { get { return playerData; } }
|
||||
public PlayerStateMachine(Player player)
|
||||
{
|
||||
this.player = player;
|
||||
playerData = player.PlayerData;
|
||||
playerData = GameSession.Instance.GetPlayerData();
|
||||
playerTransform = player.transform;
|
||||
InitStates();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user