예제 #1
0
    public void PanelSelected(RectTransform panel, RectTransform selector)
    {
        if (panel == ThisRectTransform)
        {
            if (!Selectors.Contains(selector))
            {
                Selectors.Add(selector);
            }
            if (panelState == Menu.PanelState.Empty)
            {
                EnterTime  = Time.time;
                panelState = Menu.PanelState.Inside;
            }

            if (EnterTime < Time.time - EnterStayTime)
            {
                PanelStay(selector);
                if (panelState == Menu.PanelState.Inside)
                {
                    CanvasEvents.OnChooserPicture(CaptureWaitTime, ThisRectTransform);
                    panelState = Menu.PanelState.Stay;
                }
            }
        }
    }
예제 #2
0
    private void SliderAction(RectTransform selector)
    {
        float selectorPosChange = selector.anchoredPosition.x - SelectorPosWhenEntered.x;

        if (SelectorMovedX(selector))
        {
            // save this selector Xpos for next selector move check
            selectorPosXLastChange = selector.anchoredPosition.x;

            if (!NegativeSlider) // if this is a right-moving slider
            {
                float xSize = PanelSizeWhenEntered.x + selectorPosChange;
                xSize = Mathf.Max(SLIDERMIN * 50, Mathf.Min(SLIDERMAX * 50, xSize));
                ThisRectTransform.sizeDelta = new Vector2(xSize, PanelSizeWhenEntered.y);
                // if (xSize < SLIDERMAX * 50 && xSize > SLIDERMIN*50)
                // ThisRectTransform.anchoredPosition = new Vector2(PanelPosWhenEntered.x + selectorPosChange / 2, ThisRectTransform.anchoredPosition.y);
            }
            else if (NegativeSlider) // if this is a left-moving slider
            {
                float xSize = PanelSizeWhenEntered.x - selectorPosChange;
                xSize = Mathf.Max(SLIDERMIN * 50, Mathf.Min(SLIDERMAX * 50, xSize));
                ThisRectTransform.sizeDelta = new Vector2(xSize, PanelSizeWhenEntered.y);
                //   if (xSize < SLIDERMAX * 50 && xSize > SLIDERMIN * 50)
                //   ThisRectTransform.anchoredPosition = new Vector2(PanelPosWhenEntered.x + selectorPosChange / 2, ThisRectTransform.anchoredPosition.y);
            }
            ThisRectTransform.GetComponentInChildren <UnityEngine.UI.Text>().text = (int)ThisRectTransform.sizeDelta.x / 50 + SliderUnit;
            CanvasEvents.OnSliderChange(Mathf.Max(0, (int)ThisRectTransform.sizeDelta.x / 50), ThisRectTransform);
        }
    }
예제 #3
0
 private void StartCapture()
 {
     //FullVideoOverlay = true;
     if (Background.gameObject.activeSelf == false)
     {
         Background.gameObject.SetActive(true);
     }
     Background.texture = kinectManager.GetUsersClrTex();
     CanvasEvents.OnExitMenu();
     StartCoroutine(Capture(CaptureWaitTime));
     StartCoroutine(CaptureCountdown(CaptureWaitTime));
 }
예제 #4
0
    public void ActivateChildrenInactivateSigns()
    { //  all children become active and the sign becomes inactive.
        CanvasEvents.OnMenuLifeSpanChange((float)Menu.LifeSpans.Max);
        AllChildrenAreIdle = false;
        foreach (GameObject slider in ActiveElements)
        {
            slider.SetActive(true);
        }

        foreach (GameObject sign in SignObjects)
        {
            sign.SetActive(false);
        }
    }
예제 #5
0
 private void InactivateChildrenActivateSigns()
 {       //  all children become inactive and the sign becomes active.
     CanvasEvents.OnMenuLifeSpanChange((float)Menu.LifeSpans.Min);
     foreach (GameObject child in ActiveElements)
     {
         child.SetActive(false);
     }
     foreach (GameObject sign in SignObjects)
     {
         sign.SetActive(true); /*
                                * if (sign.transform.FindChild("SkinText") != null)
                                * { sign.transform.FindChild("SkinText").GetComponent<UnityEngine.UI.Text>().text = "Skin: " + SkinSliderValue + " seconds"; }
                                * if (sign.transform.FindChild("SkeletonText") != null)
                                * { sign.transform.FindChild("SkeletonText").GetComponent<UnityEngine.UI.Text>().text = "Skeleton: " + SkeletonSliderValue + " seconds"; }
                                */
     }
 }
예제 #6
0
    void Awake()
    {
        _DEBUG_MODE = debugLog;
        if (_DEBUG_MODE)
        {
            FileLogger = new FileLogger();
        }
        if (Rooms.Length == 0)
        {
            if (_DEBUG_MODE)
            {
                FileLogger.LogError(">!< No rooms to use(array is empty)! >!<");
            }
            Debug.LogError("Please add rooms first.");
        }
        if (InitialRoom == null)
        {
            if (_DEBUG_MODE)
            {
                FileLogger.LogError(">!< No initial room has been set! >!<");
            }
            Debug.LogError("Please specify an initial room first.");
        }
        MaxNumberOfRooms                              = 250;
        MaxNumberOfExpansionRooms                     = 250;
        InitialisingLevel                             = true;
        hasExitRoomBeenSuccessfullyAdded              = false;
        MAX_UNSUCCESSFUL_ROOM_REPLACEMENT_ATTEMPTS    = Rooms.Length / 3;
        CURRENT_UNSUCCESSFUL_ROOM_REPLACMENT_ATTEMPTS = 0;
        if (randomizeSeed || randomizeNumOfRooms || randomizeExpansion)
        {
            RandomItem sysRnd = new RandomItem();
            if (randomizeSeed)
            {
                int newSeed = seed;
                while (seed == newSeed)
                {
                    newSeed = sysRnd.GetSystemRandom(1, 9999);
                }
                seed = newSeed;
            }
            if (randomizeNumOfRooms)
            {
                numberOfRooms = sysRnd.GetSystemRandom(1, MaxNumberOfRooms);
            }
            if (randomizeExpansion)
            {
                expandPathBy = sysRnd.GetSystemRandom(1, MaxNumberOfRooms); // don't exceed the main path rooms
            }
        }

        if (useCanvas && canvasToUse != null)
        {
            if (canvasToUse.gameObject.activeSelf)
            {
                canvasEvents = canvasToUse.GetComponent <CanvasEvents>();
            }
            else
            {
                if (_DEBUG_MODE)
                {
                    FileLogger.Log("Canvas object is disabled. Turning off the use of the canvas.");
                }
                useCanvas = false;
            }
        }
    }
예제 #7
0
    void Update()
    {
        if (LifeSpan + MenuStartTime < Time.time)
        {
            ExitMenu();
        }
        // if (speechManager == null) speechManager = SpeechManager.Instance;
        //   if(speechManager && speechManager.IsSapiInitialized())

        /*   {
         *     if(speechManager.IsPhraseRecognized())
         *     {
         *         string phraseTag = speechManager.GetPhraseTagRecognized();
         *
         *         switch(phraseTag)
         *         {
         *             case "JELLO":
         *                 print("HELLO");
         *                 break;
         *             case "MENU":
         *                 CanvasEvents.OnStartMenu();
         *                 StartMenu();
         *                 break;
         *             case "EXIT":
         *
         *                 CanvasEvents.OnExitMenu();
         *                 break;
         *             case "RAINFOREST":
         *                 ReplaceBackground(Rainforest);
         *                 break;
         *             case "CAPTURE":
         *                 StartCapture();
         *                 break;
         *         }
         *         speechManager.ClearPhraseRecognized();
         *     }
         * }*/
        MouseSelector.anchoredPosition = new Vector2((Input.mousePosition.x / Screen.width) * 1920, 1080 - (Input.mousePosition.y / Screen.height) * 1080);
        if (kinectManager && kinectManager.IsInitialized())
        {
            Texture2D kinectColorTex = kinectManager.GetUsersClrTex();
            if (FullOverlay)
            {
                FullOverlayImage.texture = kinectColorTex;
                FullOverlayImage.color   = FadedUserImageColor;
            }
            if (MenuOverlay.activeSelf == true)
            {
                UsersCutout = kinectManager.GetUsersLblTex();
                MenuOverlayImage.texture = UsersCutout;

                MenuOverlayImage.color = FadedUserImageColor;
            }
            if (!FullVideoOverlay)
            {
                UsersCutout = kinectManager.GetUsersLblTex();
                FantasyOverlayUsersImage.texture = UsersCutout;
                FantasyOverlayUsersImage.color   = FadedUserImageColor;
            }

            if (Input.GetMouseButtonDown(0))
            {
                if (MenuStarted && CanvasEvents.OnExitMenu != null)
                {
                    CanvasEvents.OnExitMenu();
                }
                else if (CanvasEvents.OnStartMenu != null)
                {
                    CanvasEvents.OnStartMenu();
                }
            }

            long UserID = kinectManager.GetPrimaryUserID();
            foreach (var d in BodySpritesDictionary)
            {
                int iJoint = d.Key;
                if (kinectManager.GetJointTrackingState(UserID, iJoint) == KinectInterop.TrackingState.Tracked)
                {
                    var     posKinect  = kinectManager.GetJointKinectPosition(UserID, iJoint);
                    Vector2 posDepth   = kinectManager.MapSpacePointToDepthCoords(posKinect);
                    ushort  depthValue = kinectManager.GetDepthForPixel((int)posDepth.x, (int)posDepth.y);
                    Vector2 posColor   = kinectManager.MapDepthPointToColorCoords(posDepth, depthValue);
                    if (posColor.x > 0 && posColor.x < 2000 && posColor.y > 0 && posColor.y < 1200)
                    {
                        d.Value.anchoredPosition = posColor;
                    }
                }
                else
                {
                    d.Value.anchoredPosition = BodySpriteSpotDefaultPos;
                }
            }
        }

        if (Fade)
        {
            FadeUserImage();
        }
    }