예제 #1
0
    // Update is called once per frame
    void Update()
    {
        // キー、マウス操作の下ウィンドウへの透過状態を更新
        UpdateFocusable();

        // もしウィンドウハンドル取得に失敗していたら再取得
        //	キー押下時点でアクティブなのは自分のウィンドウと仮定
        //	特にビルドしたものの実行だと起動時に見失ったりするので。
        if (Input.anyKeyDown)
        {
            if (!window.IsActive)
            {
                FindMyWindow();
            }
        }

        // Esc を押すとウィンドウ透過切替
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            ToggleWindowTransparency();
        }

        // Home を押すと最大化切替
        if (Input.GetKeyDown(KeyCode.Home))
        {
            ToggleMaximize();
        }

        // Insert を押すと最小化切替
        if (Input.GetKeyDown(KeyCode.Insert))
        {
            ToggleMinimize();
        }

        // マウスドラッグでウィンドウ移動
        if (Input.GetMouseButtonDown(0))
        {
            this.lastMousePosition = window.GetCursorPosition();
            this.isDragging        = true;
        }
        if (Input.GetMouseButtonUp(0))
        {
            this.isDragging = false;
        }
        if (isDragging)
        {
            Vector2 mousePos = window.GetCursorPosition();
            Vector2 delta    = mousePos - this.lastMousePosition;
            this.lastMousePosition = mousePos;

            Vector2 windowPosition = window.GetPosition(); // 現在のウィンドウ位置を取得
            windowPosition += delta;                       // ウィンドウ位置に上下左右移動分を加える
            window.SetPosition(windowPosition);            // ウィンドウ位置を設定
        }

        // ジョイスティックまたはカーソルキーでウィンドウ移動
        //	画面Y座標は下が大なので上下反転
        Vector2 axes = new Vector2(Input.GetAxis("Horizontal"), -Input.GetAxis("Vertical"));

        if (axes.sqrMagnitude != 0f)
        {
            Vector2 windowPosition = window.GetPosition(); // 現在のウィンドウ位置を取得
            windowPosition += axes * 10.0f;                // ウィンドウ位置に上下左右移動分を加える。係数10.0fは適当。
            window.SetPosition(windowPosition);            // ウィンドウ位置を設定
        }

        //ToggleFocusableOnRay();

        // ウィンドウ枠が復活している場合があるので監視するため、呼ぶ
        window.Update();
    }