- Home /
How Do Camera Follow Mullti Playeres
Hi, i have issue with camera follow multi players, i want when each player selected camera folow that and when one of this players destroy camera not follow them. my script work for just one player
public Transform target; public float distance = 10.0f; public float height = 5.0f; public float heightDamping = 2.0f; public float rotationDamping = 3.0f;
void Update()
{
if(!target.gameObject.active)
this.gameObject.SetActive(false);
}
void LateUpdate ()
{
if (!target)
return;
Vector3 followpos = new Vector3(0.0f, height, -distance);
Quaternion lookrotation = Quaternion.identity;
lookrotation.eulerAngles = new Vector3(10f, 0.0f, 0.0f);
Matrix4x4 m1 = Matrix4x4.TRS(target.position, target.rotation, Vector3.one);
Matrix4x4 m2 = Matrix4x4.TRS(followpos, lookrotation, Vector3.one);
Matrix4x4 combined = m1 * m2;
Vector3 position = combined.GetColumn(3);
Quaternion rotation = Quaternion.LookRotation(
combined.GetColumn(2),
combined.GetColumn(1)
);
Quaternion wantedRotation = rotation;
Quaternion currentRotation = transform.rotation;
Vector3 wantedPosition = position;
Vector3 currentPosition = transform.position;
currentRotation = Quaternion.Lerp(currentRotation, wantedRotation, rotationDamping * Time.deltaTime);
currentPosition = Vector3.Lerp(currentPosition, wantedPosition, heightDamping * Time.deltaTime);
transform.localRotation = currentRotation;
transform.localPosition = currentPosition;
}
Answer by arashsh · Feb 22, 2020 at 12:19 PM
i solve issue with bool and playerprefs
in game public static bool one = false; public static bool two = false; public static bool tree = false; public static int index; index = PlayerPrefs.GetInt ("playerselect"); if(index == 0) one = true; if(index == 1) two = true; if(index == 2) tree = true;
in camera script if(PlayerSelectionGame.index == 0) indexx = 0; if(PlayerSelectionGame.index == 1) indexx = 1; if(PlayerSelectionGame.index == 2) indexx = 2; Matrix4x4 m1 = Matrix4x4.TRS(targets[indexx].transform.position, targets[indexx].transform.rotation, Vector3.one);
Answer by logicandchaos · Feb 22, 2020 at 03:06 AM
What I did in my current game is put all the players in a list, then make the target move to the center point of all the players, I use a loop and calculate the centroid. When a player dies I remove them from the list, if one joins I add them to the list.
Your answer
Follow this Question
Related Questions
Player enable 1 Answer
How can I parent the player to another GameObject (Vehicle)? 2 Answers
Follow Camera Interferes with Player Movement? 0 Answers
How do I make an object teleport 2 Answers