//----------------------------------------------------------------- void Awake() { // 既に存在し重複になる場合は自身を削除する if (m_Instance != null) { GameObject.DestroyImmediate(gameObject); return; } VirtualKeyboard tInstanceOther = GameObject.FindObjectOfType(typeof(VirtualKeyboard)) as VirtualKeyboard; if (tInstanceOther != null) { if (tInstanceOther != this) { GameObject.DestroyImmediate(gameObject); return; } } //----------------------------- // Awake 内でマニュアルで実行した場合とスクリプトで実行した場合の共通の処理を行う必要がある m_Instance = this; //----------------------------- // 原点じゃないと気持ち悪い gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localRotation = Quaternion.identity; gameObject.transform.localScale = Vector3.one; //----------------------------- }
void OnDestroy() { if (m_Instance == this) { m_Instance = null; } }
/// <summary> /// バーチャルキーボードを開く /// </summary> /// <param name="tText"></param> /// <param name="tPlaceholder"></param> /// <param name="tKeyboardType"></param> /// <param name="tIsMultiLine"></param> /// <param name="tIsSecureCode"></param> /// <param name="tOnValueChaned"></param> /// <returns></returns> public static bool Open(string tText, string tTextPlaceholder, KeyboardType tKeyboardType, bool tIsMultiLine, bool tIsSecure, bool tHideInput, Action <State, string> tOnValueChaned) { VirtualKeyboard tInstane = Create(); if (tInstane == null) { return(false); } tInstane.Open_Private(tText, tTextPlaceholder, tKeyboardType, tIsMultiLine, tIsSecure, tHideInput, tOnValueChaned); return(true); }
/// <summary> /// インスタンスを取得する /// </summary> /// <returns></returns> // public static VirtualKeyboard Get() // { // return m_Instance ; // } /// <summary> /// インスタンスを破棄する /// </summary> public static void Delete() { if (m_Instance != null) { if (Application.isPlaying == false) { DestroyImmediate(m_Instance.gameObject); } else { Destroy(m_Instance.gameObject); } m_Instance = null; } }
//--------------------------------------------------------- /// <summary> /// インスタンス生成(スクリプトから生成する場合) /// </summary> /// <param name="tRunInbackground"></param> /// <returns></returns> public static VirtualKeyboard Create() { if (m_Instance != null) { // Debug.Log( "生成済み:AudioManager" ) ; return(m_Instance); } // オブジェクトが非アクティブだと検出されないのでオブジェクトを非アクティブにしてはならない // この判定は必須で mInstance は static であるためシーンの最初はオブジェクトが存在しても null になっている m_Instance = GameObject.FindObjectOfType(typeof(VirtualKeyboard)) as VirtualKeyboard; if (m_Instance == null) { GameObject tGameObject = new GameObject("VirtualKeyboard"); tGameObject.AddComponent <VirtualKeyboard>(); } return(m_Instance); }