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; } }
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); }
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); }); }); }
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); } }
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; }
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; }
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); }
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); } }
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; }
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; } }
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); } }
// 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); } }
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; }
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; } }
/// <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(); }
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); }
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(); }