private void Update() { Rigidbody shipRb = ShipChanger.shipGo.GetComponent <Rigidbody>(); if (shipRb != null) { asc = shipRb.GetComponent <DWP2.ShipController.AdvancedShipController>(); float speed = shipRb.velocity.magnitude * 1.95f; speedText.text = "SPEED: " + string.Format("{0:0.0}", speed) + "kts"; if (asc.rudders.Count > 0) { float rudderAngle = asc.rudders[0].Angle; rudderText.text = "RUDDER: " + string.Format("{0:0.0}", rudderAngle) + "°"; } if (asc.Anchor != null) { if (asc.Anchor.Dropped) { anchorImage.gameObject.SetActive(true); } else { anchorImage.gameObject.SetActive(false); } } } }
private void SetRudderAnglesFromState(AdvancedShipController controller, ShipInternState state) { var rudders = controller.rudders; for (int i = 0; i < rudders.Count; ++i) { rudders[i].Angle = state.RudderStates[i].Angle; } }
private void SetRudderAnglesFromCmd(AdvancedShipController controller, VehicleCmd cmd) { var rudders = controller.rudders; for (int i = 0; i < rudders.Count; ++i) { rudders[i].Angle = cmd.Steerables[i].Ship.Angle; } }
private void SetShipInput(AdvancedShipController controller, ShipInternState state) { controller.ThrottleInput = state.ThrottleInput; controller.RudderInput = state.SteerInput; controller.IsAccelerated = state.IsAccelerated; }
void Start() { shipController = target.GetComponent <AdvancedShipController>(); initialPosition = shipController.transform.InverseTransformPoint(transform.position); }