public override void OnEnter() { base.OnEnter(); if (base.isAuthority) { // prepare anim netTriggerContainer = new ClientAnimatorTriggerContainer(); netTriggerContainer.characterDirection = base.characterDirection.gameObject; // prepare network user thisInstance = base.GetComponent <NetworkIdentity>(); thisUser = NetworkUser.readOnlyInstancesList.Where(x => x.netId == thisInstance.netId).FirstOrDefault(); // get animation time hitDuration = GetAnimationTime("seph_ground_combo"); // play anim base.characterDirection.modelAnimator.SetTrigger("isGroundCombo1"); netTriggerContainer.animName = "isGroundCombo1"; NetServerRequestAnimTrigger.Invoke(netTriggerContainer, thisUser); // force aim base.StartAimMode(hitDuration); // damage coroutine thisSephiroth = base.gameObject.GetComponentInChildren <SephirothModelSwap>(); thisSephiroth.StartCoroutine(PrimaryGroundCoroutine()); } }
private void RPCHandleClientAnimTrigger(NetworkUser arg1, ClientAnimatorTriggerContainer arg2) { try { arg2.Execute(); } catch (Exception ex) { } }
private void RPCHandleServerAnimTrigger(NetworkUser arg1, ClientAnimatorTriggerContainer arg2) { try { foreach (var user in NetworkUser.readOnlyInstancesList) { if (arg1 != null) { if (arg1.netId == user.netId) { continue; // skip issuer as it happens client side } } NetClientRequestAnimTrigger.Invoke(arg2, user); } } catch (Exception ex) { } }