예제 #1
0
        protected internal void Awake()
        {
            m_fordiNetwork = IOCCore.Resolve <IFordiNetwork>();

            if (m_syncState)
            {
                return;
            }

            foreach (var item in ObservedComponents)
            {
                if (((IFordiObservable)item) is UISync uiSync)
                {
                    //uiSync.ActiveStateToggleEvent += ActiveStateToggle;
                    uiSync.ClickEvent += ClickEvent;
                }

                if (((IFordiObservable)item).Selectable is TMP_InputField inputField)
                {
                    inputField.onValueChanged.AddListener(OnValueChanged);
                }
                if (((IFordiObservable)item).Selectable is Toggle toggle)
                {
                    toggle.onValueChanged.AddListener((val) => OnValueChanged(toggle, val));
                }
                if (((IFordiObservable)item).Selectable is Slider slider)
                {
                    slider.onValueChanged.AddListener(OnValueChanged);
                }
                if (((IFordiObservable)item).Selectable is TMP_Dropdown dropdown)
                {
                    dropdown.onValueChanged.AddListener(OnValueChanged);
                }
            }
        }
예제 #2
0
        private IEnumerator Start()
        {
            yield return(null);

            m_commonResource = IOCCore.Resolve <ICommonResource>();
            m_sfxGroups      = m_commonResource.AssetDb.SFXGroups;
        }
예제 #3
0
 private void Awake()
 {
     if (IOCCore.Resolve <IPlayer>() == null)
     {
         IOCCore.Register <IPlayer>(this);
     }
 }
예제 #4
0
        public virtual void OpenMenu(IUserInterface userInterface, MenuArgs args)
        {
            m_userInterface = userInterface;

            if (m_experienceMachine.CurrentExperience == ExperienceType.HOME && m_standaloneMenu != null)
            {
                m_standaloneMenu.SetActive(false);
            }
            m_menuItems.Clear();
            Blocked    = args.Block;
            Persist    = args.Persist;
            m_onAction = args.OnAction;
            gameObject.SetActive(true);

            Populate(args.Items);

            if (m_uiEngine == null)
            {
                m_uiEngine = IOCCore.Resolve <IUIEngine>();
            }

            if (m_okButton != null)
            {
                m_okButton.onClick.AddListener(() => m_uiEngine.CloseLastScreen());
            }
            if (m_closeButton != null)
            {
                m_closeButton.onClick.AddListener(() => m_uiEngine.CloseLastScreen());
            }
        }
예제 #5
0
        public IEnumerator Start()
        {
            m_chatPool = new Pool <ChatElement>(m_chatContentRoot, m_chatElementPrefab.gameObject);
            this.ChatPanel.gameObject.SetActive(false);
            //this.ConnectingLabel.SetActive(false);
            m_webInterface = IOCCore.Resolve <IWebInterface>();
            m_vrMenu       = IOCCore.Resolve <IUserInterface>();

            this.UserName = m_webInterface.UserInfo.name;

#if PHOTON_UNITY_NETWORKING
            this.chatAppSettings = PhotonNetwork.PhotonServerSettings.AppSettings.GetChatSettings();
#endif

            bool appIdPresent = !string.IsNullOrEmpty(this.chatAppSettings.AppId);

            if (!appIdPresent)
            {
                Debug.LogError("You need to set the chat app ID in the PhotonServerSettings file in order to continue.");
            }

            yield return(null);

            m_sendButton.interactable = false;

            Connect();
        }
예제 #6
0
        protected override void AwakeOverride()
        {
            base.AwakeOverride();
            m_settings       = IOCCore.Resolve <ISettings>();
            m_audio          = IOCCore.Resolve <IAudio>();
            m_commonResource = IOCCore.Resolve <ICommonResource>();
            m_webInterace    = IOCCore.Resolve <IWebInterface>();

            m_hourValidator.m_timeForm   = this;
            m_minuteValidator.m_timeForm = this;
            if (m_meetingHour.inputValidator != null && m_meetingHour.inputValidator is TimeInputValidator hourValidator)
            {
                hourValidator.m_timeForm = this;
            }
            if (m_meetingMinute.inputValidator != null && m_meetingMinute.inputValidator is TimeInputValidator minuteValidator)
            {
                minuteValidator.m_timeForm = this;
            }
            m_inputs.Clear();
            m_inputs = new List <TMP_InputField>()
            {
                m_meetingTitle, m_meetingDate, m_meetingHour, m_meetingMinute, m_meetingDurationHour, m_meetingDurationMinute
            };

            for (int i = 0; i < m_inputs.Count; i++)
            {
                int index = i;
                m_inputs[i].onSelect.AddListener((val) => m_inputIndex = index);
            }
        }
예제 #7
0
 private void Awake()
 {
     m_settings            = IOCCore.Resolve <ISettings>();
     m_experienceMachine   = IOCCore.Resolve <IExperienceMachine>();
     m_audio               = IOCCore.Resolve <IAudio>();
     m_vrInterface         = FindObjectOfType <VRMenu>();
     m_standaloneInterface = FindObjectOfType <DesktopInterface>();
     s_InputSelectedFlag   = false;
 }
예제 #8
0
 protected virtual void Awake()
 {
     m_screenRootScale   = m_screensRoot.localScale;
     m_audio             = IOCCore.Resolve <IAudio>();
     m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
     m_commonResource    = IOCCore.Resolve <ICommonResource>();
     m_settings          = IOCCore.Resolve <ISettings>();
     m_uiEngine          = IOCCore.Resolve <IUIEngine>();
 }
예제 #9
0
 protected override void AwakeOverride()
 {
     base.AwakeOverride();
     m_network = IOCCore.Resolve <INetwork>();
     for (int i = 0; i < m_inputs.Count; i++)
     {
         int index = i;
         m_inputs[i].onSelect.AddListener((val) => m_inputIndex = index);
     }
 }
예제 #10
0
 protected override void AwakeOverride()
 {
     base.AwakeOverride();
     m_settings       = IOCCore.Resolve <ISettings>();
     m_audio          = IOCCore.Resolve <IAudio>();
     m_commonResource = IOCCore.Resolve <ICommonResource>();
     m_webInterace    = IOCCore.Resolve <IWebInterface>();
     m_uiEngine.InputModuleChangeEvent += OnInputModuleChange;
     m_microphoneDropdown.onValueChanged.AddListener((val) => RefreshMikeDisplay());
 }
예제 #11
0
 private void Awake()
 {
     m_uiEngine          = IOCCore.Resolve <IUIEngine>();
     m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
     m_network           = IOCCore.Resolve <INetwork>();
     m_photonView        = GetComponent <PhotonView>();
     m_animationEngine   = IOCCore.Resolve <IAnimationEngine>();
     m_webInterface      = IOCCore.Resolve <IWebInterface>();
     Debug.LogError("Subscribed: m_animationEngine.InteractionStateChange");
     m_animationEngine.InteractionStateChange += PlayerInteractionStateChange;
 }
예제 #12
0
        protected override void AwakeOverride()
        {
            base.AwakeOverride();
            var toggle = (Toggle)selectable;

            if (toggle != null)
            {
                toggle.onValueChanged.AddListener(OnValueChange);
            }
            m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
        }
예제 #13
0
 private void Awake()
 {
     m_appTheme          = IOCCore.Resolve <IAppTheme>();
     m_audio             = IOCCore.Resolve <IAudio>();
     m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
     if (m_solidBackground)
     {
         m_solidBackground.SetActive(m_experienceMachine.CurrentExperience != ExperienceType.HOME);
     }
     AwakeOverride();
 }
예제 #14
0
        protected void Awake()
        {
            m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
            m_audio             = IOCCore.Resolve <IAudio>();
            m_commonResource    = IOCCore.Resolve <ICommonResource>();
            m_settings          = IOCCore.Resolve <ISettings>();
            m_webInterface      = IOCCore.Resolve <IWebInterface>();
            m_network           = IOCCore.Resolve <INetwork>();
            m_uiEngine          = IOCCore.Resolve <IUIEngine>();

            AwakeOverride();
        }
예제 #15
0
        private void Awake()
        {
            m_uiEngine                       = IOCCore.Resolve <IUIEngine>();
            m_experienceMachine              = IOCCore.Resolve <IExperienceMachine>();
            m_webInterface                   = IOCCore.Resolve <IWebInterface>();
            m_webInterface.OnUserDataUpdate += UserDataUpdate;

            if (!PhotonNetwork.IsConnectedAndReady)
            {
                PhotonNetwork.ConnectUsingSettings();
            }
        }
예제 #16
0
        public override void ToggleMenu()
        {
            if (m_uiEngine == null)
            {
                m_uiEngine = IOCCore.Resolve <IUIEngine>();
            }

            if (!m_uiEngine.IsOpen)
            {
                base.ToggleMenu();
                //m_glow.SetActive(true);
            }
        }
예제 #17
0
        private void Awake()
        {
            m_uiEngine = IOCCore.Resolve <IUIEngine>();
            if (m_localScale == Vector3.zero)
            {
                m_localScale = transform.localScale;
            }

            foreach (var item in m_synchronizedElements)
            {
                FordiNetwork.RegisterPhotonView(item);
            }
        }
예제 #18
0
        /// <summary>
        /// Only for plain get requests
        /// </summary>
        /// <param name="url"></param>
        /// <param name="reqMethod"></param>
        /// <param name="_requestType"></param>
        /// <returns></returns>
        public static APIRequest Prepare(string url, APIRequestType _requestType, bool setToken = true)
        {
            APIRequest req;

            req = Get(url);
            if (setToken)
            {
                req.SetRequestHeader("Authorization", "Bearer " + IOCCore.Resolve <IWebInterface>().AccessToken);
            }
            req.form        = null;
            req.requestType = _requestType;

            return(req);
        }
예제 #19
0
        private void Awake()
        {
            m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
            if (m_assetDb == null)
            {
                return;
            }

            m_voiceOvers     = m_assetDb.AudioGroups;
            m_controlGuideVO = m_assetDb.GuideAudioGroups;
            m_objects        = m_assetDb.ObjectGroups;
            m_colors         = m_assetDb.ColorGroups;
            m_animations     = m_assetDb.Animations;
        }
예제 #20
0
        public virtual void OnLoad()
        {
            AudioSelectionFlag = false;
            if (m_settings == null)
            {
                m_settings = IOCCore.Resolve <ISettings>();
            }
            if (m_audio == null)
            {
                m_audio = IOCCore.Resolve <IAudio>();
            }
            if (m_experienceMachine == null)
            {
                m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
            }
            if (m_commonResource == null)
            {
                m_commonResource = IOCCore.Resolve <ICommonResource>();
            }

            var musicCategories = GetCategories(ResourceType.MUSIC);

            if (musicCategories == null || musicCategories.Length == 0)
            {
                return;
            }

            ExperienceResource[] resources = null;

            if (Selection.MusicGroup != null && Array.FindIndex(musicCategories, item => item != null && item.Name.Equals(Selection.MusicGroup)) != -1)
            {
                resources = GetResource(ResourceType.MUSIC, Selection.MusicGroup);
            }
            else
            {
                resources = GetResource(ResourceType.MUSIC, musicCategories[UnityEngine.Random.Range(0, musicCategories.Length)].Name);
            }

            if (resources == null || resources.Length == 0)
            {
                return;
            }

            AudioClip clip = ((AudioResource)resources[UnityEngine.Random.Range(0, resources.Length)]).Clip;

            Selection.Music = clip;
            AudioArgs args = new AudioArgs(clip, AudioType.MUSIC);

            m_audio.Play(args);
        }
예제 #21
0
        private IEnumerator POST(bool autoErrorHandling)
        {
            if (form != null && form.headers.ContainsKey("Content-Type"))
            {
                form.headers["Content-Type"] = "application/json";
                //form.headers["Content-Type"] = "application/json";
            }
            else if (form != null)
            {
                form.headers.Add("Content-Type", "application/json");
            }

            yield return(SendWebRequest());

            if (!autoErrorHandling)
            {
                if (OnRequestCompleteAction != null)
                {
                    try
                    {
                        OnRequestCompleteAction(isNetworkError || isHttpError, downloadHandler.text.ToString());
                    }
                    catch (NotSupportedException)
                    {
                        OnRequestCompleteAction(isNetworkError || isHttpError, "");
                    }
                }
                yield break;
            }

            if (isNetworkError)
            {
                if (!error.Contains("abort"))
                {
                    IOCCore.Resolve <IWebInterface>().RegisterRequestFailure(error, this);
                }
            }
            else
            {
                //IOCCore.Resolve<IWebInterface>().NetworkInterface.RemoveRequest(this);
                if (OnRequestCompleteAction != null)
                {
                    OnRequestCompleteAction(false, downloadHandler.text.ToString());
                }
            }
        }
예제 #22
0
    public override void DataBind(IUserInterface userInterface, MenuItemInfo item)
    {
        m_item   = item;
        m_vrMenu = userInterface;

        if (m_appTheme == null)
        {
            m_appTheme = IOCCore.Resolve <IAppTheme>();
        }
        if (m_item != null)
        {
            m_icon.sprite = m_item.Icon;
            m_text.text   = m_item.Text;

            var validationResult = IsValid();
            if (validationResult.IsVisible)
            {
                if (m_item.IsValid)
                {
                    m_text.color = overrideColor ? overriddenHighlight : m_appTheme.GetSelectedTheme(m_platform).buttonNormalTextColor;
                }
                else
                {
                    m_text.color = m_appTheme.GetSelectedTheme(m_platform).buttonDisabledTextColor;
                }

                if (m_image != null)
                {
                    if (m_item.IsValid)
                    {
                        m_image.color = m_appTheme.GetSelectedTheme(m_platform).buttonNormalTextColor;
                    }
                    else
                    {
                        m_image.color = m_appTheme.GetSelectedTheme(m_platform).buttonDisabledTextColor;
                    }
                }
            }

            if (m_root != null)
            {
                m_root.gameObject.SetActive(validationResult.IsVisible);
            }
            selectable.interactable = validationResult.IsValid;
        }
    }
예제 #23
0
        void Awake()
        {
            m_settings = IOCCore.Resolve <ISettings>();

            m_musicSource = new GameObject("MusicSource").AddComponent <AudioSource>();

            m_voSource = new GameObject("VOSource").AddComponent <AudioSource>();

            m_sfxSource = new GameObject("SFXSource").AddComponent <AudioSource>();

            m_ambienceAudioSource = new GameObject("AmbienceAudioSource").AddComponent <AudioSource>();

            m_musicSource.transform.SetParent(this.transform);
            m_voSource.transform.SetParent(this.transform);
            m_sfxSource.transform.SetParent(this.transform);
            m_ambienceAudioSource.transform.SetParent(this.transform);
        }
예제 #24
0
        public void Download()
        {
            if (m_settings == null)
            {
                m_settings = IOCCore.Resolve <ISettings>();
            }

            GraphicsQuality    = (int)m_settings.SelectedPreferences.GraphicsQuality;
            AudioVolume        = m_settings.SelectedPreferences.AudioVolume;
            MusicVolume        = m_settings.SelectedPreferences.MusicVolume;
            SFXVolume          = m_settings.SelectedPreferences.SFXVolume;
            AmbienceVolume     = m_settings.SelectedPreferences.AmbienceVolume;
            MandalaAnimation   = m_settings.SelectedPreferences.Animation;
            MandalaParticles   = m_settings.SelectedPreferences.Particles;
            Desktop            = m_settings.SelectedPreferences.DesktopMode;
            ShowVR             = m_settings.SelectedPreferences.ShowVR;
            SelectedMicrophone = m_settings.SelectedPreferences.SelectedMicrophone;
        }
예제 #25
0
        public void Load()
        {
            if (m_settings == null)
            {
                m_settings = IOCCore.Resolve <ISettings>();
            }

            m_settings.SelectedPreferences.GraphicsQuality    = (GraphicsQuality)GraphicsQuality;
            m_settings.SelectedPreferences.AudioVolume        = AudioVolume;
            m_settings.SelectedPreferences.MusicVolume        = MusicVolume;
            m_settings.SelectedPreferences.SFXVolume          = SFXVolume;
            m_settings.SelectedPreferences.AmbienceVolume     = AmbienceVolume;
            m_settings.SelectedPreferences.Animation          = MandalaAnimation;
            m_settings.SelectedPreferences.Particles          = MandalaParticles;
            m_settings.SelectedPreferences.DesktopMode        = Desktop;
            m_settings.SelectedPreferences.ShowVR             = ShowVR;
            m_settings.SelectedPreferences.SelectedMicrophone = SelectedMicrophone;
        }
예제 #26
0
        public static APIRequest Prepare(List <IMultipartFormSection> data, string url, string reqMethod, APIRequestType _requestType)
        {
            APIRequest req;

            if (reqMethod.Equals(kHttpVerbGET))
            {
                req = Get(url);
            }
            else
            {
                req = Post(url, data);
            }
            req.SetRequestHeader("Authorization", "Bearer " + IOCCore.Resolve <IWebInterface>().AccessToken);

            //req.form = _form;
            req.requestType = _requestType;

            return(req);
        }
예제 #27
0
        public static APIRequest Prepare(WWWForm _form, string url, string reqMethod, APIRequestType _requestType)
        {
            APIRequest req;

            req = new APIRequest(" ", UnityWebRequest.kHttpVerbPOST);

            if (reqMethod.Equals(kHttpVerbGET))
            {
                req = Get(url);
            }
            else
            {
                req = Post(url, _form);
            }
            req.SetRequestHeader("Authorization", "Bearer " + IOCCore.Resolve <IWebInterface>().AccessToken);
            req.form        = _form;
            req.requestType = _requestType;
            return(req);
        }
예제 #28
0
        void Awake()
        {
            m_settings          = IOCCore.Resolve <ISettings>();
            m_experienceMachine = IOCCore.Resolve <IExperienceMachine>();
            m_webInterface      = IOCCore.Resolve <IWebInterface>();
            m_uiEngine          = IOCCore.Resolve <IUIEngine>();

            if (m_localScale == Vector3.zero)
            {
                m_localScale = transform.localScale;
            }

            foreach (var item in m_synchronizedElements)
            {
                FordiNetwork.RegisterPhotonView(item);
            }

            AwakeOverride();
        }
예제 #29
0
        private IEnumerator GET(bool autoErrorHandling)
        {
            yield return(SendWebRequest());

            if (!autoErrorHandling)
            {
                if (OnRequestCompleteAction != null)
                {
                    try
                    {
                        OnRequestCompleteAction(isNetworkError || isHttpError, downloadHandler.text.ToString());
                    }
                    catch (NotSupportedException)
                    {
                        OnRequestCompleteAction(isNetworkError || isHttpError, "");
                    }
                }
                yield break;
            }

            if (isNetworkError)
            {
                Debug.Log("isNetworkError: " + error + " " + requestType.ToString());

                if (!error.Contains("abort"))
                {
                    Error errorHandler = new Error(Error.E_NetworkIssue);
                    errorHandler.ErrorText = error;
                    IOCCore.Resolve <IUserInterface>().DisplayResult(errorHandler, true);
                    //Coordinator.instance.webInterface.networkInterface.ActivateErrorScreen(error, this);
                }
            }
            else
            {
                //Debug.Log("Request success: " + requestType.ToString());
                IOCCore.Resolve <IWebInterface>().RemoveRequest(this);
                if (OnRequestCompleteAction != null)
                {
                    OnRequestCompleteAction(false, downloadHandler.text.ToString());
                }
            }
        }
예제 #30
0
        protected override void AwakeOverride()
        {
            base.AwakeOverride();
            m_network = IOCCore.Resolve <INetwork>();
            m_network.RoomListUpdateEvent += RoomListUpdated;
            var button = m_actionButtonPrefab.GetComponentInChildren <Button>();

            if (m_actionButtonPrefab.transform == button.transform)
            {
                m_buttonRootLevel = 0;
            }
            else if (m_actionButtonPrefab.transform == button.transform.parent)
            {
                m_buttonRootLevel = 1;
            }
            else
            {
                throw new InvalidDataException("Action button prefab not in proper format");
            }
        }