UNITYを始めるときに追加するスクリプト

Unity Starter Assetsパッケージをインポートすると、2020年4月に正式版になったNew Input Systemを使用するように 自動で切替える設定変更がある。

この切替え設定では従来のInput Manager(UnityEngine.InputのAPI)が使用できない。
Input Manager用の関数やノードが動かないようになってしまう。
Input Managerを併用したい場合にはUnityの設定を変えることができる。
Project SettingsのPlayer>Other Settings>Active Input Handlingで、
「Both」に設定するとNew Input Systemと旧UnityEngine.Inputの両方どちらでも使用できるようになる。

UNITYでESCで終了する設定

ヒエラルキーで、シーンルートに新規の空のオブジェクトを追加。

作成したオブジェクトのコンポーネントとしてスクリプトを追加。

スクリプトの、Update()に、ESCキーが押されたら終了するコードを記述する。
New Input Systemに切り替えると、UnityEngine.InputのAPIは使用できないので、コードを変える必要がある。

New Input System用

        void Update()
        {
            // Exit Sample  
        if (Keyboard.current.escapeKey.isPressed)
            {
                Application.Quit();
				#if UNITY_EDITOR
				UnityEditor.EditorApplication.isPlaying = false; 
				#endif
            }
	}

旧 UnityEngine.InputのAPI用

        void Update()
        {
            // Exit Sample  
            if (Input.GetKey(KeyCode.Escape))
            {
                Application.Quit();
				#if UNITY_EDITOR
				UnityEditor.EditorApplication.isPlaying = false; 
				#endif
            }
	}

Remote Desktop でマウス移動が反応しない問題の回避

マウスコントロールを行っているスクリプトで、Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y")の値を止め、マウス位置の差分から自分で算出することでリモート側で受け取る。
    private Vector2 PreviousMousePos = new Vector2(0.0f, 0.0f);        // To keep previous MousePosition
    private Vector2 CurrentMousePos = new Vector2(0.0f, 0.0f);         // To keep previous MousePosition
    private bool initial = true;        // To keep previous MousePosition
    private float mouseDeltaPositionX, mouseDeltaPositionY;


    void Update()
    {
            CurrentMousePos = Input.mousePosition;
            if (initial) { PreviousMousePos = CurrentMousePos; initial = false; }
            mouseDeltaPositionX = (CurrentMousePos.x - PreviousMousePos.x) * 40.0f / Screen.width;
            mouseDeltaPositionY = (CurrentMousePos.y - PreviousMousePos.y) * 40.0f / Screen.height;

            PreviousMousePos = CurrentMousePos;

            if (mouseDeltaPositionX < -1.0f) { mouseDeltaPositionX = -1.0f; }
            if (mouseDeltaPositionY < -1.0f) { mouseDeltaPositionY = -1.0f; }
            if (mouseDeltaPositionX > 1.0f) { mouseDeltaPositionX = 1.0f; }
            if (mouseDeltaPositionY > 1.0f) { mouseDeltaPositionY = 1.0f; }

        angleH += Mathf.Clamp(mouseDeltaPositionX, -1, 1) * horizontalAimingSpeed;
       	angleV += Mathf.Clamp(mouseDeltaPositionY, -1, 1) * verticalAimingSpeed;

        // Get mouse movement to orbit the camera.
        // Mouse:
        //     angleH += Mathf.Clamp(Input.GetAxis("Mouse X"), -1, 1) * horizontalAimingSpeed;
        //	angleV += Mathf.Clamp(Input.GetAxis("Mouse Y"), -1, 1) * verticalAimingSpeed;
     }
                
キャラクターモデルの変更

return