///質問:それはバグだらけ変更文字カメラながら、ゲーム内
されることなく、他のプレイヤーにカメラを変更する方法だから私は0から1に変数selecterCharを変更しているコードの部分を持っていますかユーザーが 'E'を押すたびに逆戻りし、うまく動作します。これは私が今、このスクリプトの他の部分がカメラのために使用され、このコード
private void ChangeCharacter()
{
GameObject thePlayer = GameObject.Find("Walk (1)");
PlayerMovement playerMovemnt = thePlayer.GetComponent<PlayerMovement>();
int selectedCharacter = playerMovemnt.selectedChar;
selCharacter = selectedCharacter;
}
と、このいずれかにアクセスする別のスクリプトです。私はこの
private void Start()
{
offset = transform.position - player.transform.position;
offset = transform.position - player2.transform.position;
}
private void LateUpdate()
{
if (selCharacter == 0)
{
transform.position = player.transform.position + offset;
}
else
{
transform.position = player2.transform.position + offset;
}
}
でカメラを変更したい(このスクリプトの先頭で宣言された)selCharacterが0であれば、カメラがプレイヤーに移動し、それが1であれば、それはplayer2に行きます。だから、ChangeCharacterメソッドは、ゲームが始まるときに1回だけ使用されますが、コードをChangeCharacter()からlateUpdate()に移動すると機能しますが、停止する前に複数回カメラを変更しています。私はLateUpdate()からそれを呼び出すのは最初のプレイヤーだけです。
この行内 'offset = transform.position - player.transform.position; offset = transform.position - player2.transform.position; 'あなたはオフセットを上書きしていますか? – cjf93
他のスクリプトのGetKeyをDownに追加して修正しました。さらに、lateUpdateスクリプトにChangeCharacter()コードを追加してjsutしました。今、それは働いており、オフセットのためにいくつかのテストから残されています。私はそれを削除することを忘れてしまった。 –