private void OnPacketPlayerFireWeapon(ref PlayerFireWeapon p) { PlayerClient player = playersByIndex[p.Index]; if (player == null) { return; } if (player.Connection != p.SenderConnection) { throw new InvalidOperationException(); } Vector3 initialPos = p.InitialPos; Vector3 gunspotPos = p.GunspotPos; float angle = p.Angle; WeaponType weaponType = p.WeaponType; Player proxyActor = player.ProxyActor; Await.NextUpdate().OnCompleted(() => { if (proxyActor == null) { return; } proxyActor.LastInitialPos = initialPos; proxyActor.LastGunspotPos = gunspotPos; proxyActor.LastAngle = angle; proxyActor.FireWeapon(weaponType); }); }
#pragma warning restore private void Awake() { _myEngine = GetComponent <PlayerEngine>(); _myAnim = GetComponentInChildren <Animator>(); _myWeapon = GetComponentInChildren <PlayerFireWeapon>(); _myMovement = GetComponent <PlayerMovement>(); }