mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 00:39:53 +00:00
rebuild network animator params and mirror floats on controller change
This commit is contained in:
parent
4f9ee55f3d
commit
37c3d25494
@ -71,7 +71,7 @@ namespace Mirror
|
||||
}
|
||||
}
|
||||
|
||||
void Awake()
|
||||
public void Awake()
|
||||
{
|
||||
// store the animator parameters in a variable - the "Animator.parameters" getter allocates
|
||||
// a new parameter array every time it is accessed so we should avoid doing it in a loop
|
||||
|
@ -10,7 +10,6 @@ using UnityEngine;
|
||||
|
||||
namespace QSB.Animation.Player
|
||||
{
|
||||
|
||||
public class AnimationSync : PlayerSyncObject
|
||||
{
|
||||
private RuntimeAnimatorController _suitedAnimController;
|
||||
@ -43,8 +42,6 @@ namespace QSB.Animation.Player
|
||||
|
||||
protected void OnDestroy()
|
||||
{
|
||||
Destroy(InvisibleAnimator);
|
||||
Destroy(NetworkAnimator);
|
||||
QSBSceneManager.OnUniverseSceneLoaded -= OnUniverseSceneLoaded;
|
||||
}
|
||||
|
||||
@ -64,7 +61,6 @@ namespace QSB.Animation.Player
|
||||
LoadControllers();
|
||||
}
|
||||
|
||||
NetworkAnimator.enabled = true;
|
||||
VisibleAnimator = body.GetComponent<Animator>();
|
||||
Mirror = body.gameObject.AddComponent<AnimatorMirror>();
|
||||
if (isLocalPlayer)
|
||||
@ -76,10 +72,8 @@ namespace QSB.Animation.Player
|
||||
Mirror.Init(InvisibleAnimator, VisibleAnimator);
|
||||
}
|
||||
|
||||
// for (var i = 0; i < InvisibleAnimator.parameterCount; i++)
|
||||
// {
|
||||
// NetworkAnimator.SetParameterAutoSend(i, true);
|
||||
// }
|
||||
NetworkAnimator.enabled = true;
|
||||
NetworkAnimator.Awake();
|
||||
|
||||
var playerAnimController = body.GetComponent<PlayerAnimController>();
|
||||
_suitedAnimController = playerAnimController._baseAnimController;
|
||||
@ -300,15 +294,9 @@ namespace QSB.Animation.Player
|
||||
{
|
||||
DebugLog.ToConsole($"Error - Mirror is null. ({PlayerId})", MessageType.Error);
|
||||
}
|
||||
else if (InvisibleAnimator != null)
|
||||
{
|
||||
NetworkAnimator.animator = InvisibleAnimator; // Probably not needed.
|
||||
Mirror.RebuildFloatParams();
|
||||
// for (var i = 0; i < InvisibleAnimator.parameterCount; i++)
|
||||
// {
|
||||
// NetworkAnimator.SetParameterAutoSend(i, true);
|
||||
// }
|
||||
}
|
||||
|
||||
Mirror.RebuildFloatParams();
|
||||
NetworkAnimator.Awake();
|
||||
}
|
||||
}
|
||||
}
|
@ -44,10 +44,7 @@ namespace QSB.Animation.Player
|
||||
_to.runtimeAnimatorController = _from.runtimeAnimatorController;
|
||||
}
|
||||
|
||||
foreach (var param in _from.parameters.Where(p => p.type == AnimatorControllerParameterType.Float))
|
||||
{
|
||||
_floatParams.Add(param.name, new AnimFloatParam());
|
||||
}
|
||||
RebuildFloatParams();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
@ -60,6 +57,7 @@ namespace QSB.Animation.Player
|
||||
if (_to.runtimeAnimatorController != _from.runtimeAnimatorController)
|
||||
{
|
||||
_to.runtimeAnimatorController = _from.runtimeAnimatorController;
|
||||
RebuildFloatParams();
|
||||
}
|
||||
|
||||
SyncParams();
|
||||
@ -73,13 +71,6 @@ namespace QSB.Animation.Player
|
||||
switch (fromParam.type)
|
||||
{
|
||||
case AnimatorControllerParameterType.Float:
|
||||
if (!_floatParams.ContainsKey(fromParam.name))
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - Tried to sync anim float that doesn't exist in dict : {fromParam.name}", MessageType.Warning);
|
||||
RebuildFloatParams();
|
||||
break;
|
||||
}
|
||||
|
||||
_floatParams[fromParam.name].Target = _from.GetFloat(fromParam.name);
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user