private GUIContent[] GetAvailableRigidbodyPreviews()
    {
        List <GUIContent> guiContentList = new List <GUIContent>();

        try
        {
            if (availableRigidBodies.Length.Equals(rigidbodyGameobjectsAndImageDictionary.Count))
            {
                foreach (KeyValuePair <GameObject, Texture2D> entry in rigidbodyGameobjectsAndImageDictionary)
                {
                    GUIContent guiContent = new GUIContent
                    {
                        text  = entry.Key.name,
                        image = entry.Value
                    };
                    guiContentList.Add(guiContent);
                }
            }
        }
        catch (Exception)
        {
            EasyMotionUtility.ReOpen <EasyMotionRigidbodySetupWindow>("Rigidbody Setup", "Select the rigidbody for which you wish to map motion to");
        }

        return(guiContentList.ToArray());
    }
 private void CheckIfRigidbodyCountChanged()
 {
     Rigidbody[] currentRigidbodies = EasyMotionUtility.FindActiveRigidbodies();
     if (availableRigidBodies.Length != currentRigidbodies.Length)
     {
         ReOpenWindow();
     }
 }
示例#3
0
 private void OnEnable()
 {
     skin = (GUISkin)Resources.Load(EasyMotionConstants.pluginSkin);
     dropdownControllers = EasyMotionUtility.FindActiveEnabledDropdownControllers();
     dropdownIcon        = (Texture2D)Resources.Load("dropdown");
     availableDropdowns  = EasyMotionUtility.FindActiveDropdowns();
     GeneratePreviews();
     currentScene = SceneManager.GetActiveScene().name;
 }
示例#4
0
 private void DestroyAllEasyMotionSerialPortDropdownInstances()
 {
     foreach (EasyMotionSerialPortDropdownController script in dropdownControllers)
     {
         DestroyImmediate(script);
     }
     dropdownControllers = EasyMotionUtility.FindActiveEnabledDropdownControllers();
     EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
 }
 private void OnEnable()
 {
     skin = (GUISkin)Resources.Load(EasyMotionConstants.pluginSkin);
     availableRigidBodies = EasyMotionUtility.FindActiveRigidbodies();
     PopulatePreviewDictionary();
     currentScene = SceneManager.GetActiveScene().name;
     EditorApplication.hierarchyChanged += HierarchyWindowChanged;
     easyMotions = EasyMotionUtility.FindActiveEnabledEasyMotions();
 }
 private void OnEnable()
 {
     skin       = (GUISkin)Resources.Load(EasyMotionConstants.pluginSkin);
     toggleIcon = (Texture2D)Resources.Load("toggle");
     easyMotionToggleControllers = EasyMotionUtility.FindActiveEnabledToggleControllers();
     availableToggles            = EasyMotionUtility.FindActiveToggles();
     GeneratePreviews();
     currentScene = SceneManager.GetActiveScene().name;
 }
 private void DestroyAllEasyMotionInstances()
 {
     foreach (EasyMotion script in easyMotions)
     {
         DestroyImmediate(script);
     }
     EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
     easyMotions = EasyMotionUtility.FindActiveEnabledEasyMotions();
 }
 private void DestroyAllToggleControllers()
 {
     foreach (EasyMotionToggleController script in easyMotionToggleControllers)
     {
         DestroyImmediate(script);
     }
     easyMotionToggleControllers = EasyMotionUtility.FindActiveEnabledToggleControllers();
     EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
 }
示例#9
0
 private void DeleteAllSliderControllerScripts()
 {
     EasyMotionSliderController[] sliderScripts = EasyMotionUtility.FindActiveEnabledSliderControllers();
     foreach (EasyMotionSliderController script in sliderScripts)
     {
         DestroyImmediate(script);
     }
     availableSliders = FindActiveSliders();
     EditorSceneManager.MarkSceneDirty(SceneManager.GetActiveScene());
 }
示例#10
0
 private void CheckIfDropdownCountChanged()
 {
     Dropdown[] currentDropdowns = EasyMotionUtility.FindActiveDropdowns();
     if (availableDropdowns.Length != currentDropdowns.Length)
     {
         EasyMotionUtility.ReOpen <EasyMotionSerialPortSetupWindow>(
             "Serial Port Setup",
             "Select the dropdown the player will use to select their motion platform's serial port");
     }
 }
 private void CheckIfToggleCountChanged()
 {
     Toggle[] currentSliders = EasyMotionUtility.FindActiveToggles();
     if (availableToggles.Length != currentSliders.Length)
     {
         EasyMotionUtility.ReOpen <EasyMotionToggleSetupWindow>(
             "Toggle Setup",
             "Select the toggle which will enable the player to enable or disable the motion platform.");
     }
 }
示例#12
0
 private void ReopenIfSliderCountChanged()
 {
     Slider[] currentSliders = FindActiveSliders();
     if (availableSliders.Length != currentSliders.Length)
     {
         EasyMotionUtility.ReOpen <EasyMotionForceSlidersSetupWindow>(
             "Force Sliders Setup",
             "Select the sliders the player will use to control the amount of Pitch/Roll forces produced.");
     }
 }
    private bool NeededComponentsExist()
    {
        Toggle[]   toggles               = EasyMotionUtility.FindActiveToggles();
        Dropdown[] dropdowns             = EasyMotionUtility.FindActiveDropdowns();
        bool       neededComponentsExist = true;

        if (toggles.Length < 1 || dropdowns.Length < 1)
        {
            neededComponentsExist = false;
        }
        return(neededComponentsExist);
    }
示例#14
0
    void SeatRotation()
    {
        float roll          = easyMotion.platformRoll - easyMotion.GetPlatformCentre();
        float rotationLimit = 10.5f;
        float rotation      = roll / dataDampening;

        rotation = EasyMotionUtility.ClampValueSymmetrically(rotation, rotationLimit);
        if (!float.IsNaN(rotation))
        {
            seat.localEulerAngles = new Vector3(0, 0, rotation);
        }
    }
示例#15
0
    void SeatRotation()
    {
        float dataDampening = 10f;
        float rotationLimit = 9.5f;
        float pitch         = easyMotion.ReturnPitch() - easyMotion.seatPitchModifier - easyMotion.GetPlatformCentre();
        float rotation      = pitch / dataDampening;

        rotation = -rotation;
        rotation = EasyMotionUtility.ClampValueSymmetrically(rotation, rotationLimit);
        if (!float.IsNaN(rotation))
        {
            seat.localEulerAngles = new Vector3(0, 0, rotation);
        }
    }
    private bool FindAnyEasyMotionScript()
    {
        bool foundScript = false;

        EasyMotionToggleController[]             toggleScripts = EasyMotionUtility.FindActiveEnabledToggleControllers();
        EasyMotionSerialPortDropdownController[] portScripts   = EasyMotionUtility.FindActiveEnabledDropdownControllers();
        EasyMotion[] easyMotionScripts             = EasyMotionUtility.FindActiveEnabledEasyMotions();
        EasyMotionSliderController[] sliderScripts = EasyMotionUtility.FindActiveEnabledSliderControllers();

        if (toggleScripts.Length > 0 || portScripts.Length > 0 || easyMotionScripts.Length > 0 || sliderScripts.Length > 0)
        {
            foundScript = true;
        }
        return(foundScript);
    }
示例#17
0
    private (bool boolean, EasyMotionSliderController sliderScript) SliderExists(string savePath)
    {
        bool sliderExists = false;

        EasyMotionSliderController[] sliders = EasyMotionUtility.FindActiveEnabledSliderControllers();
        foreach (EasyMotionSliderController slider in sliders)
        {
            if (slider.GetSavePath().Equals(Application.persistentDataPath + savePath))
            {
                sliderExists = true;
                return(sliderExists, slider);
            }
        }
        return(false, null);
    }
示例#18
0
    private bool LoadPluginState()
    {
        bool   state    = false;
        string savePath = Application.persistentDataPath + EasyMotionConstants.toggleSavePath;

        try
        {
            state = EasyMotionUtility.LoadBoolean(savePath);
        }
        catch (NullReferenceException)
        {
            Debug.LogError("<b>[EasyMotion]</b> On-Off Toggle reference was <color=blue>null</color>.  Check it exists - Platform is disabled.");
        }
        return(state);
    }
示例#19
0
    private void LoadSerialPortName()
    {
        string savePath = Application.persistentDataPath + EasyMotionConstants.serialPortSavePath;

        try
        {
            port.PortName = EasyMotionUtility.LoadString(savePath);
        }
        catch (Exception e)
        {
            if (e is ArgumentNullException)
            {
                Debug.LogError("<b>[EasyMotion]</b> Port Dropdown reference was <color=blue>null</color>.  Check it exists - Platform is disabled.");
            }
        }
    }
示例#20
0
    private int GetLoadedOptionValue()
    {
        int value = 0;

        if (File.Exists(savePath))
        {
            string loadedOption = EasyMotionUtility.LoadString(savePath);
            for (int i = 0; i < availablePorts.Length; i++)
            {
                if (availablePorts[i].Equals(loadedOption))
                {
                    value = i;
                }
            }
        }
        return(value);
    }
    private void DestroyAllScripts()
    {
        EasyMotionToggleController[]             toggleScripts = EasyMotionUtility.FindActiveEnabledToggleControllers();
        EasyMotionSerialPortDropdownController[] portScripts   = EasyMotionUtility.FindActiveEnabledDropdownControllers();
        EasyMotionSliderController[]             sliderScripts = EasyMotionUtility.FindActiveEnabledSliderControllers();

        foreach (EasyMotionToggleController toggleScript in toggleScripts)
        {
            DestroyImmediate(toggleScript);
        }
        foreach (EasyMotionSerialPortDropdownController portScript in portScripts)
        {
            DestroyImmediate(portScript);
        }
        foreach (EasyMotionSliderController sliderScript in sliderScripts)
        {
            DestroyImmediate(sliderScript);
        }
    }
 private void OnDisable()
 {
     EasyMotionUtility.SaveBoolean(toggle.isOn, savePath);
 }
 private void OnEnable()
 {
     toggle      = GetComponent <Toggle>();
     toggle.isOn = EasyMotionUtility.LoadBoolean(savePath);
 }
示例#24
0
 public void StartJitterEffect(float jitterStrength)
 {
     jitterStrength = EasyMotionUtility.ClampValueSymmetrically(jitterStrength, 10);
     isJittering    = true;
     jitterAmount   = jitterStrength;
 }
示例#25
0
    private void LoadPlayerPitchMotionMultiplier()
    {
        string savePath = Application.persistentDataPath + EasyMotionConstants.pitchSliderSavePath;

        playerLongitudonalMotionMultipler = EasyMotionUtility.LoadFloat(savePath);
    }
示例#26
0
    private void LoadPlayerRollMotionMultiplier()
    {
        string savePath = Application.persistentDataPath + EasyMotionConstants.rollSliderSavePath;

        playerLateralMotionMultiplier = EasyMotionUtility.LoadFloat(savePath);
    }
示例#27
0
    private void OnDisable()
    {
        string selectedDropdown = availablePorts[dropdown.value];

        EasyMotionUtility.SaveString(selectedDropdown, savePath);
    }
示例#28
0
 private void SetPortOptions(string[] ports)
 {
     dropdown.options = EasyMotionUtility.GetDropdownOptionsFromStringArray(ports);
 }
 private void OnDisable()
 {
     EasyMotionUtility.SaveFloat(slider.value, savePath);
 }
 private void OnEnable()
 {
     slider       = GetComponent <Slider>();
     slider.value = EasyMotionUtility.LoadFloat(savePath);
 }