Unity Standard Assets

初心者向けにテンプレート的なプレファブを集めたパッケージがアセットストアに用意されている。
登場が古くて更新がUnity2018までの対応で止まっているので、FPS/TPSについては
2020以降対応のStarter Assetsを使うのがよい。
Standard_Assetsには、FPS/TPS以外のサンプルも入っている。
Screen (2D) projection サンプル

FPS 一人称キャラクターコントローラー
TPS 三人称キャラクターコントローラー
TPS ローラーボールコントローラー

カーコントローラー

航空機コントローラー

パーティクルサンプルシーン

カメラリグ(追跡・ズーム・ハンドカメラなど)
TPSシーンを動かしてみる。

2018用を2019で動かしたからか、エラーが出る。
Unity 2019でのStandard Assetsのエラーへの対処方法
using System;
using UnityEngine;
using UnityEngine.UI; // <=
#pragma warning disable 618
namespace UnityStandardAssets.Utility
{
public class SimpleActivatorMenu : MonoBehaviour
{
// An incredibly simple menu which, when given references
// to gameobjects in the scene
public Text camSwitchButton; // <=
public GameObject[] objects;

カメラコントロールのマウス移動量による入力がリモートデスクトップでは反応しないので、マウス座標での入力を付加しておく。
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;
// Read the user input
var x = CrossPlatformInputManager.GetAxis("Mouse X");
var y = CrossPlatformInputManager.GetAxis("Mouse Y");
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;
// x = 0.0f;
// y = 0.0f;
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; }
if (x == 0.0f) { x += mouseDeltaPositionX; }
if (y == 0.0f) { y += mouseDeltaPositionY; }
キャラクターモデルの変更の要領でキャラクターを取り換える。
TPS AIシーンを動かしてみる。
return