Beispiel #1
0
        // -------------------
        public void ApplyClampedVec(Vector2 v, JoystickConfig.ClampMode clampMode)
        {
            if (clampMode != this.config.clampMode)
            {
                if (this.config.clampMode == JoystickConfig.ClampMode.Circle)
                {
                    v = CFUtils.SquareToCircularJoystickVec(v);
                }
                else
                {
                    v = CFUtils.CircularToSquareJoystickVec(v);
                }
            }

            this.nextFramePos.x = CFUtils.ApplyDeltaInput(this.nextFramePos.x, v.x);
            this.nextFramePos.y = CFUtils.ApplyDeltaInput(this.nextFramePos.y, v.y);
        }
Beispiel #2
0
//private float buttonHeight = 40;
        // ---------------------
        protected void DrawJoystickConfigGUI(JoystickConfig target)
        {
            bool
                blockX           = target.blockX,
                blockY           = target.blockY,
                perAxisDeadzones = target.perAxisDeadzones;

            JoystickConfig.ClampMode
                clampMode = target.clampMode;
            //circularClamp	= target.circularClamp;
            JoystickConfig.StickMode
                stickMode = target.stickMode;
            DirectionState.OriginalDirResetMode
                originalDirResetMode = target.originalDirResetMode;
            JoystickConfig.DigitalDetectionMode
                digitalDetectionMode = target.digitalDetectionMode;

            float
                angularMagnet = target.angularMagnet;



            stickMode = (JoystickConfig.StickMode)CFGUI.EnumPopup(new GUIContent("Mode", "Joystick mode"), stickMode, 120);             // GUILayout.MinWidth(30));

            clampMode = (JoystickConfig.ClampMode)CFGUI.EnumPopup(new GUIContent("Vector Range", "Vector Range Mode"), clampMode, 120); //GUILayout.MinWidth(30));

            digitalDetectionMode = (JoystickConfig.DigitalDetectionMode)CFGUI.EnumPopup(new GUIContent("Digi. Detect. Mode", "Digital Detection Mode"),
                                                                                        digitalDetectionMode, 120);

            angularMagnet = CFGUI.Slider(new GUIContent("Digi. Angular Magnet", "Angular Magnet Strength used when changing digital direction. Higher value will make changing direction harder, which is recommended for Touch Digital Detection Mode."),
                                         angularMagnet, 0f, 1f, 100);



            if (stickMode == JoystickConfig.StickMode.Analog)
            {
                perAxisDeadzones = EditorGUILayout.ToggleLeft(new GUIContent("Per-Axis Analog Range", "Per-Axis deadzone, endzone and ramp transformations."),
                                                              perAxisDeadzones, GUILayout.MinWidth(30));
            }

            blockX = EditorGUILayout.ToggleLeft(new GUIContent("Block X"), blockX, GUILayout.MinWidth(30));
            blockY = EditorGUILayout.ToggleLeft(new GUIContent("Block Y"), blockY, GUILayout.MinWidth(30));

            originalDirResetMode = (DirectionState.OriginalDirResetMode)CFGUI.EnumPopup(new GUIContent("Dir. Reset Mode", "Original Direction Reset Mode - choose when original stick direction will be reset. This option is used mainly by the Direction Binding..."),
                                                                                        originalDirResetMode, 120); // GUILayout.MinWidth(30));



            if ((blockX != target.blockX) ||
                (blockY != target.blockY) ||
                (perAxisDeadzones != target.perAxisDeadzones) ||
                (clampMode != target.clampMode) ||
                (originalDirResetMode != target.originalDirResetMode) ||
                (digitalDetectionMode != target.digitalDetectionMode) ||
                (stickMode != target.stickMode) ||
                (angularMagnet != target.angularMagnet))
            {
                CFGUI.CreateUndo("Joy Config modification", this.undoObject);


                target.perAxisDeadzones = perAxisDeadzones;
                target.blockX           = blockX;
                target.blockY           = blockY;
                //target.circularClamp		= circularClamp;
                target.clampMode            = clampMode;
                target.stickMode            = stickMode;
                target.originalDirResetMode = originalDirResetMode;
                target.angularMagnet        = angularMagnet;
                target.digitalDetectionMode = digitalDetectionMode;

                CFGUI.EndUndo(this.undoObject);
            }
        }