void Update() { if (attachedInteractionPoint == null) { return; } translationPoint.position = attachedInteractionPoint.transform.position; var thrusterAxis = new ThrusterAxis(translationPoint.localPosition, thrusterMaxDistance); rotationPoint.rotation = attachedInteractionPoint.transform.rotation; var angles = rotationPoint.localEulerAngles; StickAxis rotationAxis; if (upright) { rotationAxis = new StickAxis(angles); } else { rotationAxis = new StickAxis(angles.x, -angles.z + 360f, angles.y); } var endpoint = thrusterAxis.Value * thrusterMaxDistance; if (line) { line.SetPosition(1, new Vector3(endpoint.x, 0, endpoint.z)); } if (marker) { marker.gameObject.SetActive(true); marker.transform.localPosition = new Vector3(endpoint.x, 0, endpoint.z); var euler = marker.transform.localEulerAngles; euler.y = rotationAxis.Yaw; marker.transform.localEulerAngles = euler; } if (verticalDisplay) { verticalDisplay.transform.localPosition = new Vector3(0, 0, endpoint.z); } if (verticalLine) { verticalLine.transform.localPosition = new Vector3(endpoint.x, 0, 0); verticalLine.SetPosition(1, new Vector3(0, endpoint.y, 0)); } if (rollMarker) { rollMarker.gameObject.SetActive(true); rollMarker.transform.localPosition = new Vector3(endpoint.x, endpoint.y, 0); rollMarker.transform.localEulerAngles = new Vector3(0, 0, -rotationAxis.Roll); } if (output) { output.SetThrusters(thrusterAxis); output.SetStickAxis(rotationAxis); } }
void Update() { if (attachedInteractionPoint == null) { return; } rotationPoint.rotation = attachedInteractionPoint.transform.rotation; var axis = new StickAxis(rotationPoint.localEulerAngles); vJoyInterface.instance?.SetStickAxis(axis); }
void Update() { if (attachedInteractionPoint == null) { return; } rotationPoint.rotation = attachedInteractionPoint.transform.rotation; var axis = new StickAxis(rotationPoint.localEulerAngles); if (output) { output.SetStickAxis(axis); } }