public void SetVehicle(Vehicle newVehicle) { if (Vehicle != newVehicle) { if (Vehicle) { Vehicle.mainAnimator.SetBool(animatorPlayerIn, false); Detach(); ArmsController.SetWorldIKTarget(null, null); Vehicle.GetComponent <MultiplayerVehicleControl <Vehicle> >().Exit(); } if (newVehicle) { newVehicle.mainAnimator.SetBool(animatorPlayerIn, true); Attach(newVehicle.playerPosition.transform); ArmsController.SetWorldIKTarget(newVehicle.leftHandPlug, newVehicle.rightHandPlug); newVehicle.GetComponent <MultiplayerVehicleControl <Vehicle> >().Enter(); } RigidBody.isKinematic = newVehicle; Vehicle = newVehicle; AnimationController["in_seamoth"] = newVehicle is SeaMoth; AnimationController["in_exosuit"] = AnimationController["using_mechsuit"] = newVehicle is Exosuit; } }
public void SetPilotingChair(PilotingChair newPilotingChair) { if (PilotingChair != newPilotingChair) { PilotingChair = newPilotingChair; Validate.NotNull(SubRoot, "Player changed PilotingChair but is not in SubRoot!"); MultiplayerCyclops mpCyclops = SubRoot.GetComponent <MultiplayerCyclops>(); if (PilotingChair) { Attach(PilotingChair.sittingPosition.transform); ArmsController.SetWorldIKTarget(PilotingChair.leftHandPlug, PilotingChair.rightHandPlug); mpCyclops.CurrentPlayer = this; mpCyclops.Enter(); } else { SetSubRoot(SubRoot); ArmsController.SetWorldIKTarget(null, null); mpCyclops.CurrentPlayer = null; mpCyclops.Exit(); } RigidBody.isKinematic = AnimationController["cyclops_steering"] = newPilotingChair != null; } }