コード例 #1
0
        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);
            }
        }
コード例 #2
0
        void Update()
        {
            if (attachedInteractionPoint == null)
            {
                return;
            }

            rotationPoint.rotation = attachedInteractionPoint.transform.rotation;

            var axis = new StickAxis(rotationPoint.localEulerAngles);

            vJoyInterface.instance?.SetStickAxis(axis);
        }
コード例 #3
0
        void Update()
        {
            if (attachedInteractionPoint == null)
            {
                return;
            }

            rotationPoint.rotation = attachedInteractionPoint.transform.rotation;

            var axis = new StickAxis(rotationPoint.localEulerAngles);

            if (output)
            {
                output.SetStickAxis(axis);
            }
        }