added automatic syncobject adding

This commit is contained in:
Mister_Nebula 2020-12-14 16:04:16 +00:00
parent 96ec06e40d
commit b13c4be8dd
4 changed files with 14 additions and 11 deletions

View File

@ -31,8 +31,9 @@ namespace QSB.Animation
public AnimatorMirror Mirror { get; private set; }
public AnimationType CurrentType;
private void Awake()
protected override void Awake()
{
base.Awake();
_anim = gameObject.AddComponent<Animator>();
_netAnim = gameObject.AddComponent<QSBNetworkAnimator>();
_netAnim.enabled = false;
@ -41,8 +42,9 @@ namespace QSB.Animation
QSBSceneManager.OnUniverseSceneLoaded += (OWScene scene) => LoadControllers();
}
private void OnDestroy()
protected override void OnDestroy()
{
base.OnDestroy();
if (_playerController == null)
{
return;
@ -79,8 +81,6 @@ namespace QSB.Animation
Mirror.Init(_anim, _bodyAnim);
}
QSBPlayerManager.PlayerSyncObjects.Add(this);
for (var i = 0; i < _anim.parameterCount; i++)
{
_netAnim.SetParameterAutoSend(i, true);

View File

@ -27,20 +27,17 @@ namespace QSB.Instruments
QSBInputManager.ExitTaunt += () => ReturnToPlayer();
QSB.Helper.Events.Unity.RunWhen(() => Locator.GetPlayerBody() != null, SetupInstruments);
QSBPlayerManager.PlayerSyncObjects.Add(this);
}
public void InitRemote(Transform root)
{
rootObj = root;
QSB.Helper.Events.Unity.RunWhen(() => Locator.GetPlayerBody() != null, SetupInstruments);
QSBPlayerManager.PlayerSyncObjects.Add(this);
}
private void OnDestroy()
protected override void OnDestroy()
{
base.Awake();
if (!IsLocalPlayer)
{
return;

View File

@ -7,5 +7,9 @@ namespace QSB.Player
public uint AttachedNetId => NetIdentity?.NetId.Value ?? uint.MaxValue;
public uint PlayerId => NetIdentity.RootIdentity?.NetId.Value ?? NetIdentity.NetId.Value;
public PlayerInfo Player => QSBPlayerManager.GetPlayer(PlayerId);
protected virtual void Awake() => QSBPlayerManager.PlayerSyncObjects.Add(this);
protected virtual void OnDestroy() => QSBPlayerManager.PlayerSyncObjects.Remove(this);
}
}

View File

@ -22,15 +22,17 @@ namespace QSB.TransformSync
private Quaternion _rotationSmoothVelocity;
private bool _isVisible;
protected virtual void Awake()
protected override void Awake()
{
base.Awake();
QSBPlayerManager.PlayerSyncObjects.Add(this);
DontDestroyOnLoad(gameObject);
QSBSceneManager.OnSceneLoaded += OnSceneLoaded;
}
protected virtual void OnDestroy()
protected override void OnDestroy()
{
base.OnDestroy();
DebugLog.DebugWrite($"destroy of {PlayerId}.{GetType().Name}");
QSBPlayerManager.PlayerSyncObjects.Remove(this);
if (!HasAuthority && SyncedTransform != null)