Например на сцене 2 игрока - А и Б. Игрок Б садиться в машину и ездит на ней, но у игрока А передвигается только сам игрок Б, а машина не двигается.
Я уже много что пере про бывал и не знаю что делать дальше.
Вот скрипт машины:
using UnityEngine;
using Photon.Pun;
using System.Linq;
public class AutoController : MonoBehaviourPun
{
public float SpeedCar;
public float MinSpeed;
public float MaxSpeed;
public float Manevrenost;
public GameObject LeftWheelsOne;
public GameObject RightWheelsOne;
public GameObject LeftWheelsTwo;
public GameObject RightWheelsTwo;
public float DriftFloat;
public float MaxDriftFloat;
public bool OffOrOn;
public bool ifPlayer;
PhotonView View;
public GameObject Player;
public float X;
public float Z;
[PunRPC]
public void Start()
{
Player = gameObject;
}
[PunRPC]
void Update()
{
View = Player.GetComponent<PhotonView>();
if (View.IsMine || ifPlayer == true)
{
if (Input.GetKey(KeyCode.K) && ifPlayer == true)
{
OffOrOn = true;
}
if (SpeedCar < 0)
{
SpeedCar = 0;
}
if (Input.GetKey(KeyCode.W) && OffOrOn == true)
{
if (SpeedCar < MinSpeed)
{
SpeedCar = MinSpeed;
}
if (SpeedCar > MaxSpeed)
{
SpeedCar = MaxSpeed;
}
if (DriftFloat < MaxDriftFloat)
{
DriftFloat += Time.deltaTime;
}
SpeedCar += Time.deltaTime;
LeftWheelsOne.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
RightWheelsOne.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
LeftWheelsTwo.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
RightWheelsTwo.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
gameObject.transform.position -= gameObject.transform.forward * SpeedCar * Time.deltaTime;
}
else
{
SpeedCar -= 2;
if (SpeedCar > 0)
{
gameObject.transform.position -= gameObject.transform.forward * SpeedCar * Time.deltaTime;
}
}
if (Input.GetKey(KeyCode.A) && Input.GetKey(KeyCode.W) && OffOrOn == true)
{
if (DriftFloat > 0)
{
gameObject.transform.position += gameObject.transform.right * DriftFloat * Time.deltaTime;
DriftFloat -= Time.deltaTime;
DriftFloat -= Time.deltaTime;
}
gameObject.transform.Rotate(new Vector3(0, -25, 0) * Manevrenost * Time.deltaTime);
LeftWheelsOne.transform.localRotation = Quaternion.Euler(new Vector3(1 * SpeedCar, -30, 90));
RightWheelsOne.transform.localRotation = Quaternion.Euler(new Vector3(1 * SpeedCar, -30, 90));
LeftWheelsOne.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
RightWheelsOne.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
SpeedCar -= Time.deltaTime;
SpeedCar -= Time.deltaTime;
}
else if (Input.GetKey(KeyCode.D) && Input.GetKey(KeyCode.W) && OffOrOn == true)
{
if (DriftFloat > 0)
{
gameObject.transform.position -= gameObject.transform.right * DriftFloat * Time.deltaTime;
DriftFloat -= Time.deltaTime;
DriftFloat -= Time.deltaTime;
}
gameObject.transform.Rotate(new Vector3(0, 25, 0) * Manevrenost * Time.deltaTime);
LeftWheelsOne.transform.localRotation = Quaternion.Euler(new Vector3(1 * SpeedCar, +30, 90));
RightWheelsOne.transform.localRotation = Quaternion.Euler(new Vector3(1 * SpeedCar, +30, 90));
LeftWheelsOne.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
RightWheelsOne.transform.Rotate(new Vector3(0, 45, 0) * SpeedCar * Time.deltaTime);
SpeedCar -= Time.deltaTime;
SpeedCar -= Time.deltaTime;
}
else
{
LeftWheelsOne.transform.localRotation = Quaternion.Euler(new Vector3(0, 0, 90));
RightWheelsOne.transform.localRotation = Quaternion.Euler(new Vector3(0, 0, 90));
}
}
}
[PunRPC]
public void OnTriggerEnter(Collider other)
{
if(other.tag == "Player")
{
ifPlayer = true;
Player = other.gameObject;
}
}
}
что надо сделать что бы у игрока А и у Б машина двигалась?