Ejemplo n.º 1
0
    void Start()
    {
        int   children    = transform.childCount;
        float fullSpacing = ItemWidth + Spacing;

        for (int i = 0; i < children; i++)
        {
            Transform childTransform = transform.GetChild(i);

            float x = childTransform.localPosition.x / fullSpacing;
            x = x / Mathf.PI + x * Spacing / Radius;

            childTransform.localPosition = new Vector3(
                Mathf.Sin(x) * Radius,
                childTransform.localPosition.y,
                Mathf.Cos(x) * Radius
                );

            childTransform.LookAt(Camera.main.transform.position);
            Vector3 euler = childTransform.rotation.eulerAngles;
            childTransform.rotation = Quaternion.Euler(
                0f,
                euler.y - 180f,
                0f
                );

            FloatingButton button = childTransform.GetComponent <FloatingButton>();
            if (button == null)
            {
                continue;
            }
            button.PositionOrig = button.transform.position;
        }
    }
Ejemplo n.º 2
0
    void Start()
    {
        vr     = OpenVR.IsHmdPresent();
        seated = OpenVR.ChaperoneSetup == null;

        // FIXME Currently no Chaperone / SteamVR support
        seated = true;

        if (VRControls == null)
        {
            VRControls = GameObject.Find("VR Controls");
        }
        if (MainMenuControls == null)
        {
            MainMenuControls = GameObject.Find("Main Menu Controls");
        }
        if (InGameControls == null)
        {
            InGameControls = GameObject.Find("In-Game Controls");
        }
        if (Reticle == null)
        {
            Reticle = GameObject.Find("Reticle").GetComponent <Reticle>();
        }

        // Fix level select height displacement
        if (vr)
        {
            MainMenuControls.transform.localPosition = new Vector3(
                0f,
                0.5f,
                0f
                );
        }

        //InGameControls.transform.parent = Camera.main.transform;
        inGameButtons = new FloatingButton[InGameControls.transform.childCount];
        for (int i = 0; i < inGameButtons.Length; i++)
        {
            Transform childTransform = InGameControls.transform.GetChild(i);

            FloatingButton button = childTransform.GetComponent <FloatingButton>();
            if (button == null)
            {
                continue;
            }
            inGameButtons[i]      = button;
            button.ScaleFadeSpeed = 0f;
        }
        InGameControls.SetActive(false);

        SimpleSmoothMouseLook mouseLook = Camera.main.GetComponent <SimpleSmoothMouseLook>();

        if (mouseLook != null)
        {
            mouseLook.enabled = !vr;
        }

        SwitchLevel(null);
    }
Ejemplo n.º 3
0
    public void UpdateButton(FloatingButton button, int levelID)
    {
        if (levelID < 0)
        {
            levelID = levels.Count - levelID;
        }
        levelID %= levels.Count;

        Material material = levelMaterials[levelID];

        button.TextureScale = new Vector2(
            Mathf.Sign(material.mainTextureScale.x),
            Mathf.Sign(material.mainTextureScale.y)
            );
        button.GetComponent <MeshRenderer>().sharedMaterial = material;
        button.OnClick.RemoveAllListeners();
        button.OnClick.AddListener(delegate() {
            if (switching != Switch.None)
            {
                return;
            }

            switching = Switch.Level;
            SetButtonPhysics(false);

            HoloFEZPlayer.Instance.SelectLevel(levels[levelID], delegate() {
                SetButtonPhysics(true);
            });
        });
    }
Ejemplo n.º 4
0
    IEnumerator FadingIn(FloatingButton i, Vector3 target)
    {
        float t         = 0;
        float x         = 0;
        float time      = 0.5f;
        float timeScale = 1 / time;

        while (t < time)
        {
            t += 1f * Time.deltaTime;

            x = Mathf.Clamp(Mathf.SmoothStep(0f, 1f, t * timeScale), 0f, 1f);

            Vector3 tempPos = i.transform.localPosition;
            tempPos = Vector3.Lerp(zeroPos, target, x);
            i.transform.localPosition = tempPos;

            Vector3 tempScale = i.transform.localScale;
            tempScale = Vector3.Lerp(Vector3.zero, Vector3.one, x);
            //Debug.Log(tempScale);
            i.transform.localScale = tempScale;

            yield return(null);
        }
    }
Ejemplo n.º 5
0
    public IEnumerator TeleportCoroutine(System.Action cb)
    {
        if (Teleporting)
        {
            cb();
            yield break;
        }

        Teleporting = true;

        ;
        for (float f = 0f; f <= 1f; f += TeleportFadeSpeed * HoloFEZHelper.SpeedF)
        {
            SteamVR_Fade.Start(new Color(
                                   1f,
                                   1f,
                                   1f,
                                   f
                                   ), 0f, true);
            yield return(null);
        }

        cb();

        if (Frozen)
        {
            InGameControls.SetActive(false);
        }

        for (float f = 0f; f <= 1f; f += TeleportFadeSpeed * HoloFEZHelper.SpeedF)
        {
            SteamVR_Fade.Start(new Color(
                                   1f,
                                   1f,
                                   1f,
                                   1f - f
                                   ), 0f, true);
            yield return(null);
        }
        SteamVR_Fade.Start(clearwhite, 0f, true);

        if (!Frozen)
        {
            for (int i = 0; i < inGameButtons.Length; i++)
            {
                FloatingButton button = inGameButtons[i];
                if (button == null)
                {
                    continue;
                }
                button.transform.localScale = Vector3.zero;
                button.ScaleFade            = 0f;
                button.ScaleFadeSpeed       = 0.1f;
            }
            InGameControls.SetActive(vr && seated);
        }

        Teleporting = false;
    }
Ejemplo n.º 6
0
        private void AddButtons()
        {
            _changeScheduleButton = new FloatingButton("Change Schedule");
            View.Add(_changeScheduleButton);

            _changeScheduleButton.TopAnchor.ConstraintEqualTo(ReminderPeriod.BottomAnchor, 45).Active = true;
            _changeScheduleButton.CenterXAnchor.ConstraintEqualTo(View.CenterXAnchor).Active          = true;
        }
Ejemplo n.º 7
0
    void Start()
    {
        seated = OpenVR.ChaperoneSetup == null;

        // FIXME Currently no Chaperone / SteamVR support
        seated = true;

        if (VRControls == null)
        {
            VRControls = GameObject.Find("VR Controls");
        }
        if (MainMenuControls == null)
        {
            MainMenuControls = GameObject.Find("Main Menu Controls");
        }
        if (InGameControls == null)
        {
            InGameControls = GameObject.Find("In-Game Controls");
        }
        if (Reticle == null)
        {
            Reticle = GameObject.Find("Reticle").GetComponent <Reticle>();
        }

        // Fix level select height displacement
        if (vr)
        {
            MainMenuControls.transform.localPosition = new Vector3(
                0f,
                0.5f,
                0f
                );
        }

        //InGameControls.transform.parent = Camera.main.transform;
        inGameButtons = new FloatingButton[InGameControls.transform.childCount];
        for (int i = 0; i < inGameButtons.Length; i++)
        {
            Transform childTransform = InGameControls.transform.GetChild(i);

            FloatingButton button = childTransform.GetComponent <FloatingButton>();
            if (button == null)
            {
                continue;
            }
            inGameButtons[i]      = button;
            button.ScaleFadeSpeed = 0f;
        }
        InGameControls.SetActive(false);

        FezUnityNpcInstance.DefaultShouldStartTalking = NPCShouldStartTalking;
        FezUnityNpcInstance.DefaultTalking            = NPCTalking;
        FezUnityNpcInstance.DefaultShouldStopTalking  = NPCShouldStopTalking;

        SwitchLevel(null);
    }
Ejemplo n.º 8
0
    void Start()
    {
        foreach (string assetName in AssetMetadata.Map.Keys)
        {
            if (!assetName.StartsWith("levels\\"))
            {
                continue;
            }

            string   level = assetName.Substring(7);
            Material material;

            try {
                using (BinaryReader reader = FezManager.Instance.ReadFromPack("other textures\\map_screens\\" + level)) {
                    material =
                        Instantiate((FmbUtil.ReadObject(
                                         reader
                                         ) as Texture2D).GenMaterial(ButtonShader));
                    material.SetTexture("_MaskTex", MaskTexture);
                }
            } catch {
                // Normally hidden / inaccessible level
                continue;
            }

            material.mainTextureScale = new Vector2(
                1f,
                -1f
                );

            levels.Add(level);
            levelMaterials.Add(material);
        }

        buttons = new FloatingButton[transform.childCount];
        for (int i = 0; i < buttons.Length; i++)
        {
            Transform childTransform = transform.GetChild(i);

            FloatingButton button = childTransform.GetComponent <FloatingButton>();
            if (button == null)
            {
                continue;
            }
            buttons[i]            = button;
            button.ScaleFadeSpeed = 0f;

            if (i <= 0 || buttons.Length - 1 <= i)
            {
                continue;
            }

            UpdateButton(button, i - 1 + levelIndex);
        }
    }
Ejemplo n.º 9
0
    void Start()
    {
        //Get the panel description container and set the description
        //panelDescription = gameObject.GetComponentInChildren<PanelDescription>();
        //panelDescription.setTitle(TitleText);
        //panelDescription.setDescription(DescriptionText);

        // Get the close button and listen for close events
        closeButton          = gameObject.GetComponentInChildren <FloatingButton>();
        closeButton.Clicked += CloseButton_Activated;
    }
Ejemplo n.º 10
0
 public void SetButtonPhysics(bool enabled)
 {
     for (int i = 0; i < buttons.Length; i++)
     {
         FloatingButton button = buttons[i];
         if (button == null)
         {
             continue;
         }
         button.GetComponent <Collider>().enabled = enabled;
     }
 }
Ejemplo n.º 11
0
 public void UpdateButtons()
 {
     for (int i = 1; i < buttons.Length - 1; i++)
     {
         FloatingButton button = buttons[i];
         if (button == null)
         {
             continue;
         }
         UpdateButton(button, i - 1 + levelIndex);
     }
 }
Ejemplo n.º 12
0
    // Aktivuje odemčené portály a nastaví cestu k ukládání v obchodě
    public void EnablePlayerDependantObjects(Transform target, Transform cameraTransform, string shopInventoryPath)
    {
        FloatingButton.SetTransforms(target, cameraTransform);

        for (int i = 0; i < _gameState.highestLevelUnlocked; i++)
        {
            _portals[i].enabled = true;
        }

        for (int i = 0; i < _shopkeepers.Length; i++)
        {
            _shopkeepers[i].enabled = true;
            _shopkeepers[i].LoadShopInventory(shopInventoryPath);
        }
    }
Ejemplo n.º 13
0
        private void AddButtons()
        {
            _saveButton = new FloatingButton("Save");
            View.Add(_saveButton);

            _cancelButton = new FloatingButton("Cancel");
            View.Add(_cancelButton);


            _saveButton.TopAnchor.ConstraintEqualTo(EndTime.BottomAnchor, 20).Active = true;
            _saveButton.LeftAnchor.ConstraintEqualTo(EndTime.LeftAnchor).Active      = true;

            _cancelButton.TopAnchor.ConstraintEqualTo(EndTime.BottomAnchor, 20).Active     = true;
            _cancelButton.LeftAnchor.ConstraintEqualTo(_saveButton.RightAnchor, 20).Active = true;
        }
Ejemplo n.º 14
0
    void Update()
    {
        if (switching == Switch.Level && !HoloFEZPlayer.Instance.Teleporting)
        {
            switching = Switch.None;
        }

        float scaleFadeSpeedAbs = scaleFadeSpeed;

        if (scaleFadeSpeed < 0f)
        {
            scaleFadeSpeedAbs = -scaleFadeSpeed;
            if (sinceStart <= timeMin)
            {
                int levelButtons = buttons.Length - 2;
                levelIndex +=
                    switching == Switch.Previous ? -levelButtons :
                    switching == Switch.Next ? levelButtons :
                    0;
                if (levelIndex < 0)
                {
                    levelIndex = levels.Count + levelIndex;
                }
                switching = Switch.None;
                UpdateButtons();
                scaleFadeSpeed = -scaleFadeSpeed;
                SetButtonPhysics(true);
            }
        }

        sinceStart = Mathf.Clamp(sinceStart + Time.deltaTime * Mathf.Sign(scaleFadeSpeed), timeMin, buttons.Length * 0.5f / scaleFadeSpeedAbs + 0.5f);

        for (int i = 0; i < buttons.Length; i++)
        {
            FloatingButton button = buttons[i];
            if (button == null)
            {
                continue;
            }
            button.ScaleFade = sinceStart * scaleFadeSpeedAbs - i * 0.5f;
        }
    }
Ejemplo n.º 15
0
        /// <summary>
        /// Initializes a new instance of the <see cref="App"/> class.
        /// </summary>
        public App()
        {
#if ALARM_XAML
            InitializeComponent();
#endif
            // The root page of your application
            mainTabbed = new MainTabbedPage();
            MainPage   = new NavigationPage(mainTabbed);
            mainNavi   = MainPage as NavigationPage;

            // Create a FloatingButton
            FloatingButtonItem item = new FloatingButtonItem
            {
                Icon = "alarm/clock_floating_icon.png"
            };
            floatingButton = new FloatingButton
            {
                FirstButton = item
            };

            // By default, FloatingButton is shown when it's created and therefore it is needed to make it hidden.
            floatingButton.Hide();
        }
Ejemplo n.º 16
0
        public override void Run(Window window)
        {
            Conformant conformant = new Conformant(window);

            conformant.Show();
            Box box = new Box(window)
            {
                AlignmentY = -1,
                AlignmentX = -1,
                WeightX    = 1,
                WeightY    = 1,
            };

            box.Show();
            conformant.SetContent(box);

            FloatingButton floatingButton = new FloatingButton(window)
            {
                Mode       = FloatingButtonMode.All,
                AlignmentY = -1,
                AlignmentX = -1,
                WeightX    = 1,
                WeightY    = 1,
            };

            floatingButton.Show();
            floatingButton.Resize(700, 700);
            floatingButton.Move(0, 400);

            Box backGround = new Box(window)
            {
                AlignmentY = -1,
                AlignmentX = -1,
                WeightX    = 1,
                WeightY    = 1,
            };

            backGround.Show();

            Button button1 = CreateButton(window, "Mode change to LeftRightOnly");

            button1.Clicked += (s, e) => {
                if (floatingButton.Mode == FloatingButtonMode.All)
                {
                    floatingButton.Mode = FloatingButtonMode.LeftRightOnly;
                    button1.Text        = "Mode change to All";
                }
                else
                {
                    floatingButton.Mode = FloatingButtonMode.All;
                    button1.Text        = "Mode change to LeftRightOnly";
                }
            };
            button1.Show();

            Button button2 = CreateButton(window, "MovementBlock Set");

            button2.Clicked += (s, e) => {
                floatingButton.MovementBlock = !floatingButton.MovementBlock;
                if (floatingButton.MovementBlock)
                {
                    button2.Text = "MovementBlock Unset";
                }
                else
                {
                    button2.Text = "MovementBlock Set";
                }
            };
            button2.Show();

            Button button3 = CreateButton(window, "RedButton Set");

            button3.Clicked += (s, e) => {
                if (_RedButton == null)
                {
                    _RedButton = CreateButton(window, "RedButton");
                    _RedButton.BackgroundColor = Color.Red;
                    floatingButton.SetPartContent("button1", _RedButton, true);
                    button3.Text = "RedButton Unset";
                }
                else
                {
                    _RedButton.Unrealize();
                    _RedButton = null;
                    floatingButton.SetPartContent("button1", _RedButton, true);
                    button3.Text = "RedButton Set";
                }
            };
            button3.Show();

            Button button4 = CreateButton(window, "GreenButton Set");

            button4.Clicked += (s, e) => {
                if (_GreenButton == null)
                {
                    _GreenButton = CreateButton(window, "GreenButton");
                    _GreenButton.BackgroundColor = Color.Green;
                    floatingButton.SetPartContent("button2", _GreenButton, true);
                    button4.Text = "GreenButton Unset";
                }
                else
                {
                    _GreenButton.Unrealize();
                    _GreenButton = null;
                    floatingButton.SetPartContent("button2", _GreenButton, true);
                    button4.Text = "GreenButton Unset";
                }
            };
            button4.Show();

            box.PackEnd(backGround);
            box.PackEnd(button1);
            box.PackEnd(button2);
            box.PackEnd(button3);
            box.PackEnd(button4);
        }
Ejemplo n.º 17
0
    void Buy()
    {
        //Debug.Log("Buy");
        // 캐릭터 상호작용

        //TODO:'FindObjectOfType<CashierAi>()'대신에 매니저 클래스를 이용하여 최적화 필요함.
        var cashierAI = FindObjectOfType <CashierAi>();

        // 계산원이 없으면 무한 대기
        if (cashierAI == null)
        {
            return;
        }

        state = AiState.Buying;

        // 알바가 있으면
        if (cashierAI.IsEmployee)
        {
            cashierAI.ItemDeal(this, ItemDealCallback);
        }
        // 없으면
        else
        {
            // 유저 상호작용 요청
            FloatingButton.Create(cashierAI.transform, new Vector3(0.2f, 0), null, (button) =>
            {
                Destroy(button.gameObject);

                var timer = FloatingTimer.Create(cashierAI.transform, new Vector3(0.2f, 0), 10, (floatingTimer) =>
                {
                    floatingTimer.FadeoutWithDestory();

                    if (WishItems.Count > 0)
                    {
                        PlayData.CurrentData.Money += WishItems[0].GetData().SellPrice;
                        PlayData.CurrentData.DailyStatisticsData.SellMoney += WishItems[0].GetData().SellPrice;
                    }
                    PlayData.CurrentData.Awareness += 1;

                    ItemDealCallback();
                    // 직접 판매 퀘스트 트리거
                    ProjectTrader.QuestManager.Trigger(ProjectTrader.Datas.QuestData.GoalType.SelfDeal, 1);
                });
                //timer.boostRatio = 2;
            });
        }

        void ItemDealCallback()
        {
            // 상호작용이 끝나면
            // 가격 처리
            int price = 0;

            FindObjectOfType <SoundControl>().PaySound();

            //PlayData.CurrentData.Awareness += 1; //아이템 코드에 따라 다르게
            //FindObjectOfType<Uiup>().Upawareness(1);

            foreach (var item in WishItems)
            {
                price += item.GetData().SellPrice *item.Count;
                FindObjectOfType <Uiup>().Upmoney(price);

                PlayData.CurrentData.Awareness += (int)item.GetData().Awareness - 1; //아이템 코드에 따라 다르게
                FindObjectOfType <Uiup>().Upawareness((int)item.GetData().Awareness);
            }

            // 아이템 판매 퀘스트 트리거
            ProjectTrader.QuestManager.Trigger(QuestData.GoalType.SellItem, 1);

            // 구매할 아이템 초기화
            WishItems.Clear();

            state = AiState.Buyed;
        }
    }
 private void Click()
 {
     _floatingAction?.ButtonAction?.Invoke();
     FloatingButton?.ShowHideButtons();
 }