|
@@ -1,263 +0,0 @@
|
|
|
-/**
|
|
|
- * Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
|
|
|
- *
|
|
|
- * You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
|
|
|
- * copy, modify, and distribute this software in source code or binary form for use
|
|
|
- * in connection with the web services and APIs provided by Facebook.
|
|
|
- *
|
|
|
- * As with any software that integrates with the Facebook platform, your use of
|
|
|
- * this software is subject to the Facebook Developer Principles and Policies
|
|
|
- * [http://developers.facebook.com/policy/]. This copyright notice shall be
|
|
|
- * included in all copies or substantial portions of the software.
|
|
|
- *
|
|
|
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
|
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
|
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
|
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
|
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
- */
|
|
|
-
|
|
|
-namespace Facebook.Unity.Example
|
|
|
-{
|
|
|
- using System;
|
|
|
- using System.Collections.Generic;
|
|
|
- using System.Linq;
|
|
|
- using UnityEngine;
|
|
|
- using UnityEngine.SceneManagement;
|
|
|
-
|
|
|
- internal class ConsoleBase : MonoBehaviour
|
|
|
- {
|
|
|
- private const int DpiScalingFactor = 160;
|
|
|
- private static Stack<string> menuStack = new Stack<string>();
|
|
|
- private string status = "Ready";
|
|
|
- private string lastResponse = string.Empty;
|
|
|
- private Vector2 scrollPosition = Vector2.zero;
|
|
|
-
|
|
|
- // DPI scaling
|
|
|
- private float? scaleFactor;
|
|
|
- private GUIStyle textStyle;
|
|
|
- private GUIStyle buttonStyle;
|
|
|
- private GUIStyle textInputStyle;
|
|
|
- private GUIStyle labelStyle;
|
|
|
-
|
|
|
- protected static int ButtonHeight
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return Constants.IsMobile ? 60 : 24;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected static int MainWindowWidth
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return Constants.IsMobile ? Screen.width - 30 : 700;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected static int MainWindowFullWidth
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return Constants.IsMobile ? Screen.width : 760;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected static int MarginFix
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return Constants.IsMobile ? 0 : 48;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected static Stack<string> MenuStack
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return ConsoleBase.menuStack;
|
|
|
- }
|
|
|
-
|
|
|
- set
|
|
|
- {
|
|
|
- ConsoleBase.menuStack = value;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected string Status
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return this.status;
|
|
|
- }
|
|
|
-
|
|
|
- set
|
|
|
- {
|
|
|
- this.status = value;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected Texture2D LastResponseTexture { get; set; }
|
|
|
-
|
|
|
- protected string LastResponse
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return this.lastResponse;
|
|
|
- }
|
|
|
-
|
|
|
- set
|
|
|
- {
|
|
|
- this.lastResponse = value;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected Vector2 ScrollPosition
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return this.scrollPosition;
|
|
|
- }
|
|
|
-
|
|
|
- set
|
|
|
- {
|
|
|
- this.scrollPosition = value;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // Note we assume that these styles will be accessed from OnGUI otherwise the
|
|
|
- // unity APIs will fail.
|
|
|
- protected float ScaleFactor
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- if (!this.scaleFactor.HasValue)
|
|
|
- {
|
|
|
- this.scaleFactor = Screen.dpi / ConsoleBase.DpiScalingFactor;
|
|
|
- }
|
|
|
-
|
|
|
- return this.scaleFactor.Value;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected int FontSize
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- return (int)Math.Round(this.ScaleFactor * 16);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected GUIStyle TextStyle
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- if (this.textStyle == null)
|
|
|
- {
|
|
|
- this.textStyle = new GUIStyle(GUI.skin.textArea);
|
|
|
- this.textStyle.alignment = TextAnchor.UpperLeft;
|
|
|
- this.textStyle.wordWrap = true;
|
|
|
- this.textStyle.padding = new RectOffset(10, 10, 10, 10);
|
|
|
- this.textStyle.stretchHeight = true;
|
|
|
- this.textStyle.stretchWidth = false;
|
|
|
- this.textStyle.fontSize = this.FontSize;
|
|
|
- }
|
|
|
-
|
|
|
- return this.textStyle;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected GUIStyle ButtonStyle
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- if (this.buttonStyle == null)
|
|
|
- {
|
|
|
- this.buttonStyle = new GUIStyle(GUI.skin.button);
|
|
|
- this.buttonStyle.fontSize = this.FontSize;
|
|
|
- }
|
|
|
-
|
|
|
- return this.buttonStyle;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected GUIStyle TextInputStyle
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- if (this.textInputStyle == null)
|
|
|
- {
|
|
|
- this.textInputStyle = new GUIStyle(GUI.skin.textField);
|
|
|
- this.textInputStyle.fontSize = this.FontSize;
|
|
|
- }
|
|
|
-
|
|
|
- return this.textInputStyle;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected GUIStyle LabelStyle
|
|
|
- {
|
|
|
- get
|
|
|
- {
|
|
|
- if (this.labelStyle == null)
|
|
|
- {
|
|
|
- this.labelStyle = new GUIStyle(GUI.skin.label);
|
|
|
- this.labelStyle.fontSize = this.FontSize;
|
|
|
- }
|
|
|
-
|
|
|
- return this.labelStyle;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- protected virtual void Awake()
|
|
|
- {
|
|
|
- // Limit the framerate to 60 to keep device from burning through cpu
|
|
|
- Application.targetFrameRate = 60;
|
|
|
- }
|
|
|
-
|
|
|
- protected bool Button(string label)
|
|
|
- {
|
|
|
- return GUILayout.Button(
|
|
|
- label,
|
|
|
- this.ButtonStyle,
|
|
|
- GUILayout.MinHeight(ConsoleBase.ButtonHeight * this.ScaleFactor),
|
|
|
- GUILayout.MaxWidth(ConsoleBase.MainWindowWidth));
|
|
|
- }
|
|
|
-
|
|
|
- protected void LabelAndTextField(string label, ref string text)
|
|
|
- {
|
|
|
- GUILayout.BeginHorizontal();
|
|
|
- GUILayout.Label(label, this.LabelStyle, GUILayout.MaxWidth(200 * this.ScaleFactor));
|
|
|
- text = GUILayout.TextField(
|
|
|
- text,
|
|
|
- this.TextInputStyle,
|
|
|
- GUILayout.MaxWidth(ConsoleBase.MainWindowWidth - 150));
|
|
|
- GUILayout.EndHorizontal();
|
|
|
- }
|
|
|
-
|
|
|
- protected bool IsHorizontalLayout()
|
|
|
- {
|
|
|
- #if UNITY_IOS || UNITY_ANDROID
|
|
|
- return Screen.orientation == ScreenOrientation.Landscape;
|
|
|
- #else
|
|
|
- return true;
|
|
|
- #endif
|
|
|
- }
|
|
|
-
|
|
|
- protected void SwitchMenu(Type menuClass)
|
|
|
- {
|
|
|
- ConsoleBase.menuStack.Push(this.GetType().Name);
|
|
|
- SceneManager.LoadScene(menuClass.Name);
|
|
|
- }
|
|
|
-
|
|
|
- protected void GoBack()
|
|
|
- {
|
|
|
- if (ConsoleBase.menuStack.Any())
|
|
|
- {
|
|
|
- SceneManager.LoadScene(ConsoleBase.menuStack.Pop());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|