「質問へのコメント」欄にて述べたように,そもそもの話がほとんどわからない状況であるが,
おそらく
- 複数のゲームキャラクターが同時に場に存在するが,
各時刻においてプレイヤ(ゲームをプレイする人)の操作入力を受け付ける(=プレイヤに操作される)のはそのうちの何れか1つであり,
他のゲームキャラクターは自律的に行動する.
- プレイヤに操作される対象は切り替えることができる.
という話なのだろう,と思う.
Unityの事は全く知らないが,
とりあえず「何か自律行動するゲームキャラクター」というのをものすごく単純に考えると,例えば
C#
1//各ゲームキャラクターはこれを実装する
2interface IGameCharacter
3{
4 //このメソッドがゲームループから呼ばれるので,
5 //ゲームキャラクター固有の自律的な行動をする.
6 void Move();
7}
8
9//ゲームキャラクターA
10class GameCharacterA : IGameCharacter
11{
12 public void Move(){ /*ゲームキャラクターAに固有の行動*/ }
13}
14
15//ゲームキャラクターBやCも同様
みたいな話があれば良いのではなかろうか,とか思う.
(A,B,C を別のclassとして実装するのが良いかどうか等はまた別の話だとして.)
で,この場合,「プレイヤーの操作に応じて動く」にはどうすれば良いのか?
Move()
が「自律行動」なのであれば,操作対象のオブジェクトに関してはそれを呼ばなければいいよね,という考え方もあり得る.
(別途「操作」するためのメソッドを設けてそれを呼ぶとか?)
Move()
の「自律的な行動する」という定義を「行動する」に変える,という方向性も考えられる.
Move()
に何か引数を設けて「操作 or 自律」を指示するのでもいいだろうし,
別口で「お前は今から操作対象な」とか「お前は今後自律行動しろな」とかいう設定をするのでもよいだろうし.
……くらいの簡素な話を書いておけば,「そういう話じゃねぇよ」とか「それだと〇〇ができねぇから質問してるんだが?」だとかいうような,より具体的な話が出てくるきっかけになるであろうか?