コード例 #1
0
    public void OpenDirectory(string dir)
    {
        curDir    = dir;
        parentDir = Directory.GetDirectoryRoot(dir);

        /*
         * string[] dirLevels = dir.Split('/');
         * parentDir = dirLevels[0];
         * for (int i = 1; i < dirLevels.Length - 1; i++)
         * {
         *  parentDir += "/" + dirLevels[i];
         * }
         */
        string[] newFolders = Directory.GetDirectories(dir);
        for (int i = 0; i < folders.Count; i++)
        {
            Destroy(folders[i].gameObject);
        }
        folders = new List <FolderPanel>();
        int levelCounter = -1;

        for (int i = 0; i < newFolders.Length; i++)
        {
            if (i % 4 == 0)
            {
                levelCounter++;
            }
            GameObject folder = Instantiate(folderObj, Vector3.zero, Quaternion.identity);
            folder.transform.SetParent(folderContainer.transform);
            folder.transform.rotation = folderContainer.transform.rotation;
            folder.transform.position = new Vector3(folderContainer.transform.position.x + .5f * levelCounter - 0.7f,
                                                    folderContainer.transform.position.y - 0.09f * i + 0.36f * levelCounter + 0.18f,
                                                    folderContainer.transform.position.z);
            folder.transform.localScale = Vector3.one;
            FolderPanel folderP = folder.GetComponent <FolderPanel>();
            folderP.fScript  = this;
            folderP.filePath = newFolders[i];
            string[] fileParts = newFolders[i].Split('\\');
            folderP.text.text = fileParts[fileParts.Length - 1]; // sets the text to the actual file name
        }
        // Calculates width of container and sets up scrolling
        if (levelCounter > 4)
        {
            float containerWidth = 100 * levelCounter; // --- this is an estimate - revise!!!
            float ratio          = 400 / containerWidth;
            scrollButton.sizeDelta = new Vector2(400 * ratio, 20);
        }
        else
        {
            scrollButton.sizeDelta = new Vector2(400, 20);
        }
    }
コード例 #2
0
        private void AddFolderBtn_Click(object sender, EventArgs e)
        {
            SetNativeEnabled(false);

            FolderPanel.Create(GetFullDir, folderName =>
            {
                SetNativeEnabled(true);

                if (folderName != "" && Directory.CreateDirectory(GetFullDir + folderName).Exists)
                {
                    AddPanel(new FolderPanel(ListPanel, folderName, GetFullDir), true);
                }
                ;
            });
        }
コード例 #3
0
    // Update is called once per frame
    void Update()
    {
        if (controller == null)
        {
            Debug.Log("Null Controller!");
            return;
        }

        triggerPressed = controller.GetPress(triggerButton);

        if (controller.GetPressDown(menuButton))
        {
            zoomMode = !zoomMode;
            if (zoomMode)
            {
                zoomModeMat.SetColor("_TintColor", Color.magenta);
            }
            else
            {
                zoomModeMat.SetColor("_TintColor", Color.blue);
            }
        }

        RaycastHit hit;

        if (controller.GetPressDown(triggerButton))
        {
            //print("GotPress, Looking Forward: " + (transform.rotation * -Vector3.up));
            if (fileMode)
            {
                if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, vFileLayer))
                {
                    ImageFilePanel ifp = hit.collider.gameObject.GetComponent <ImageFilePanel>();
                    ifp.Select();
                    iScript.GoToIndex(ifp.index);
                }
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, vFileLayer))
                {
                    FolderPanel fp = hit.collider.gameObject.GetComponent <FolderPanel>();
                    fp.Select();
                    iScript.fScript.OpenDirectory(fp.filePath);
                }
                // Check for clicking Video Mode or Quit
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, modeLayer))
                {
                    UnityEngine.Application.LoadLevel(1);
                }
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, quitLayer))
                {
                    UnityEngine.Application.Quit();
                }
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, proportionLayer))
                {
                    HighlightButton hb = hit.collider.gameObject.GetComponent <HighlightButton>();
                    hb.EngageModeCommand();
                }
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, arrangementLayer))
                {
                    HighlightButton hb = hit.collider.gameObject.GetComponent <HighlightButton>();
                    hb.EngageModeCommand();
                }
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, centerLayer))
                {
                    iScript.ResetPosition();
                    proximityFactor = 1.5f;
                    otherController.proximityFactor = proximityFactor;
                }
                // Registers click on "Load Copied Directory"
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, loadLayer))
                {
                    castOffset = Vector3.zero;
                    if (Clipboard.ContainsText())
                    {
                        string text = Clipboard.GetText();
                        loadText.text = text;
                        //print("Text: " + text);
                        if (text.Length > 0)
                        {
                            dirScriptObject.SendMessage("LoadText", text);
                            startupOverlay.SetActive(false);
                        }
                    }
                }
                // Registers click on folder
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, folderLayer))
                {
                }
                // Registers click on scroll button - needs to manage movement afterward while held!
                else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, folderScrollLayer))
                {
                    if (!holdingFolderScroll)
                    {
                        oldPos = hit.point - scrollScript.transform.position;
                    }
                    else
                    {
                        scrollScript.Scroll((hit.point - scrollScript.transform.position - oldPos).x);
                        oldPos = hit.point - scrollScript.transform.position;
                    }

                    holdingFolderScroll = true;
                }
            }
            else if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000))
            {
                castOffset = hit.point - imageTransform.position;
                //print("Offset: " + castOffset);
            }
            else
            {
                castOffset          = Vector3.zero;
                holdingFolderScroll = false;
            }
        }

        if (triggerPressed && castOffset.magnitude > 0 && !fileMode)
        {
            // Enables dragging of the image
            if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000))
            {
                //castOffset = hit.point - imageTransform.position;
                //print("Offset: " + castOffset);
                imageTransform.position = hit.point - castOffset;
                iScript.UpdateActiveImage();
            }
        }
        if (controller.GetPressDown(dButton))
        {
            Vector2 padDir = controller.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0);
            if (padDir.x > 0.7f)
            {
                dirScriptObject.SendMessage("IndexUp");
            }
            else if (padDir.x < -0.7f)
            {
                dirScriptObject.SendMessage("IndexDown");
            }
        }
        if (controller.GetPress(dButton))
        {
            Vector2 padDir = controller.GetAxis(Valve.VR.EVRButtonId.k_EButton_Axis0);
            if (zoomMode)
            {
                if (padDir.y > 0.7f)
                {
                    if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000))
                    {
                        print("HitPoint: " + hit.collider.gameObject); // is triggered

                        dirScriptObject.SendMessage("ZoomIn", hit.point);
                    }
                    else
                    {
                        dirScriptObject.SendMessage("ZoomIn", imageTransform.position);
                    }
                }
                else if (padDir.y < -0.7f)
                {
                    if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000))
                    {
                        print("HitPoint: " + hit.collider.gameObject); // is triggered
                        dirScriptObject.SendMessage("ZoomOut", hit.point);
                    }
                    else
                    {
                        dirScriptObject.SendMessage("ZoomOut", imageTransform.position);
                    }
                }
            }
            else
            {
                // Next to player at -29
                if (padDir.y > 0.7f)
                {
                    proximityFactor += 1.25f * Time.deltaTime;
                    otherController.proximityFactor = proximityFactor;
                    //imageTransform.position = new Vector3(imageTransform.position.x, imageTransform.position.y,
                    //                                imageTransform.position.z + 4 * Time.deltaTime);
                }
                else if (padDir.y < -0.7f)
                {
                    proximityFactor -= 1.25f * Time.deltaTime;
                    otherController.proximityFactor = proximityFactor;
                    //imageTransform.position = new Vector3(imageTransform.position.x, imageTransform.position.y,
                    //                                imageTransform.position.z - 4 * Time.deltaTime);
                }
                // default proximityFactor is 1.5
                float zPos = 0.2963f * Mathf.Pow(proximityFactor, 3) - 29;
                imageTransform.localPosition = new Vector3(imageTransform.localPosition.x, imageTransform.localPosition.y,
                                                           zPos);
            }
        }

        if (controller.GetPressDown(gripButton))
        {
            //dirScriptObject.SendMessage("LoadText");
            fileMode = !fileMode;
            loadManager.SetActive(fileMode);
        }
        if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, modeLayer))
        {
            HighlightPanel hp = hit.collider.gameObject.GetComponent <HighlightPanel>();
            hp.isHighlighted = true;
        }
        if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, quitLayer))
        {
            HighlightPanel hp = hit.collider.gameObject.GetComponent <HighlightPanel>();
            hp.isHighlighted = true;
        }
        if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, loadLayer))
        {
            HighlightPanel hp = hit.collider.gameObject.GetComponent <HighlightPanel>();
            hp.isHighlighted = true;
        }
        if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, vFileLayer))
        {
            ImageFilePanel ifp = hit.collider.gameObject.GetComponent <ImageFilePanel>();
            ifp.isHighlighted = true;
            ifp.text.color    = Color.white;
        }
        if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, proportionLayer))
        {
            HighlightButton hb = hit.collider.gameObject.GetComponent <HighlightButton>();
            hb.isHighlighted = true;
        }
        if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, arrangementLayer))
        {
            HighlightButton hb = hit.collider.gameObject.GetComponent <HighlightButton>();
            hb.isHighlighted = true;
        }
        if (Physics.Raycast(transform.position, transform.rotation * castDir, out hit, 10000, centerLayer))
        {
            HighlightButton hb = hit.collider.gameObject.GetComponent <HighlightButton>();
            hb.isHighlighted = true;
        }
    }