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