void Start() { if (Application.platform != RuntimePlatform.WindowsEditor) { int setWidth = 0; int setHeight = 0; switch (resolutionType) { case APP_RESOLUTION.CURRENT_FULLSCREEN: setWidth = Screen.currentResolution.width; setHeight = Screen.currentResolution.height; DebugConsole.Log("set CURRENT_FULLSCREEN resolution " + setWidth.ToString() + " : " + setHeight.ToString()); break; case APP_RESOLUTION.DISPLAY_SUPPORTED: setWidth = Screen.resolutions[resolutionID].width; setHeight = Screen.resolutions[resolutionID].height; DebugConsole.Log("set DISPLAY_SUPPORTED resolution " + setWidth.ToString() + " : " + setHeight.ToString()); break; case APP_RESOLUTION.CUSTOM_RESOLUTION: setWidth = customW; setHeight = customH; DebugConsole.Log("set CUSTOM_RESOLUTION resolution " + setWidth.ToString() + " : " + setHeight.ToString()); break; case APP_RESOLUTION.CUSTOM_RESOLUTION_POPUPWINDOW: setWidth = customW; setHeight = customH; DebugConsole.Log("set CUSTOM_RESOLUTION_POPUPWINDOW resolution " + setWidth.ToString() + " : " + setHeight.ToString()); break; } // 解像度を変更 if (resolutionType == APP_RESOLUTION.CUSTOM_RESOLUTION_POPUPWINDOW) { WindowsUtil.SetPopupWindow(setWidth, setHeight); } else { Screen.SetResolution(setWidth, setHeight, fullScreen); } } }
private void InputByDevice() { isTouch = true; touchCount = 0; if (inputType == INPUT_TYPE.TOUCH) { #if UNITY_STANDALONE_WIN // for Windows Player #if !USE_TOUCH_SCRIPT Debug.LogWarning("Input.Touch is not work in windows. please use TouchScript. and then enable the define macro on the first line of this script."); #else // as TouchScript touchCount = TouchScript.TouchManager.Instance.PressedPointersCount; if (touchCount >= 1) { TouchScript.Pointers.Pointer tp = TouchScript.TouchManager.Instance.PressedPointers[0]; Rect wrect = WindowsUtil.GetApplicationWindowRect(); // not work in Editor. touchPosition = new Vector2( (int)(((tp.Position.x / Screen.width) * Screen.currentResolution.width) - wrect.x), Screen.height + (int)(((tp.Position.y / Screen.height) * Screen.currentResolution.height) - wrect.y)); if (tp.Position == tp.PreviousPosition) { if (isPressed) { phase = INPUT_PHASE.Moved; } else { phase = INPUT_PHASE.Began; } } else { phase = INPUT_PHASE.Moved; } } else #endif { // Pressされた後にここにきたらReleaseとする if (isPressed) { phase = INPUT_PHASE.ENDED; } else { phase = INPUT_PHASE.NONE; touchPosition = Vector3.zero; isTouch = false; } } #elif UNITY_IOS || UNITY_ANDROID // for Mobile touchCount = Input.touchCount; if (touchCount >= 1) { touchPosition = Input.GetTouch(0).position; TouchPhase tphase = Input.GetTouch(0).phase; if (tphase == TouchPhase.Began) { phase = INPUT_PHASE.BEGAN; } else if (tphase == TouchPhase.Ended || tphase == TouchPhase.Canceled) { phase = INPUT_PHASE.ENDED; } else if (tphase == TouchPhase.Moved || tphase == TouchPhase.Stationary) { phase = INPUT_PHASE.MOVED; } } else { phase = INPUT_PHASE.NONE; touchPosition = Vector3.zero; isTouch = false; } #endif } // for Mouse else if (inputType == INPUT_TYPE.MOUSE) { touchPosition = Input.mousePosition; if (Input.GetMouseButton(0)) { if (Input.GetMouseButtonDown(0)) { phase = INPUT_PHASE.BEGAN; } else { phase = INPUT_PHASE.MOVED; } touchCount = 1; } else if (Input.GetMouseButtonUp(0)) { phase = INPUT_PHASE.ENDED; } else { phase = INPUT_PHASE.NONE; } } if (touchCount < 0) { touchCount = 0; } }
/// <summary> /// 入力デバイスにより分岐する /// </summary> private void InputDevice() { isTouch = true; touchCount = 0; // for WinTouch if (inputType == INPUT_TYPE.WTOUCH) { #if UNITY_STANDALONE_WIN #if !USE_TOUCH_SCRIPT touchCount = Input.touchCount; // 1点目を入力として受付 if (touchCount >= 1) { Rect wrect = WindowsUtil.GetApplicationWindowRect(); // not work in Editor. touchPosition = new Vector2( (int)(((Input.touches[0].position.x / Screen.width) * Screen.currentResolution.width) - wrect.x), Screen.height + (int)(((Input.touches[0].position.x / Screen.height) * Screen.currentResolution.height) - wrect.y)); if (Input.touches[0].deltaPosition != Vector2.zero) { if (isPressed) { phase = INPUT_PHASE.Moved; } else { phase = INPUT_PHASE.Began; } } else { phase = INPUT_PHASE.Moved; } #else touchCount = TouchScript.TouchManager.Instance.PressedPointersCount; // 1点目を入力として受付 if (touchCount >= 1) { TouchScript.Pointers.Pointer tp = TouchScript.TouchManager.Instance.PressedPointers[0]; Rect wrect = WindowsUtil.GetApplicationWindowRect(); // not work in Editor. touchPosition = new Vector2( (int)(((tp.Position.x / Screen.width) * Screen.currentResolution.width) - wrect.x), Screen.height + (int)(((tp.Position.y / Screen.height) * Screen.currentResolution.height) - wrect.y)); if (tp.Position == tp.PreviousPosition) { if (isPressed) { phase = INPUT_PHASE.Moved; } else { phase = INPUT_PHASE.Began; } } else { phase = INPUT_PHASE.Moved; } #endif } else { // Pressされた後にここにきたらReleaseとする if (isPressed) { phase = INPUT_PHASE.Ended; } else { phase = INPUT_PHASE.NONE; touchPosition = Vector3.zero; isTouch = false; } } #endif } // for Mobile else if (inputType == INPUT_TYPE.INPUTTOUCH) { touchCount = Input.touchCount; if (touchCount >= 1) { touchPosition = Input.GetTouch(0).position; TouchPhase tphase = Input.GetTouch(0).phase; if (tphase == TouchPhase.Began) { phase = INPUT_PHASE.Began; } else if (tphase == TouchPhase.Ended || tphase == TouchPhase.Canceled) { phase = INPUT_PHASE.Ended; } else if (tphase == TouchPhase.Moved || tphase == TouchPhase.Stationary) { phase = INPUT_PHASE.Moved; } } else { phase = INPUT_PHASE.NONE; touchPosition = Vector3.zero; isTouch = false; } } // for Mouse else if (inputType == INPUT_TYPE.MOUSE) { touchPosition = Input.mousePosition; if (Input.GetMouseButton(0)) { if (Input.GetMouseButtonDown(0)) { phase = INPUT_PHASE.Began; } else { phase = INPUT_PHASE.Moved; } touchCount = 1; } else if (Input.GetMouseButtonUp(0)) { phase = INPUT_PHASE.Ended; } else { phase = INPUT_PHASE.NONE; } } if (touchCount < 0) { touchCount = 0; } }