Je me retrouve aujourd'hui face à un problème, et j’espérais que vous pourriez m'aider à m'en sortir.
Tout d'abord le contexte :
- J'ai crée 2 personnages, Player et Player2. Un seul personnage doit être affiché, et à l'appui sur une touche, j’échange les personnages
- Ils ont chacun leurs animation, et un script chacun pour gérer leurs déplacements"PlayerScript" et "Player2Script". (C'est pas forcément optimiser mais je vais partir comme cela pour l'instant)
- J'ai un script lié à une caméra "Scrolling" qui suit le joueur. Si changement de joueur :
Code : Tout sélectionner
if(PlayerManager.CurrentPlayer==false)
playerT=GameObject.Find("Player").transform;
if(PlayerManager.CurrentPlayer==true)
playerT=GameObject.Find("Player2").transform;
- J'ai un autre script "PlayerManager", dans lequel je veux gérer le changement de personnage comme cela :
- Appui sur X
- Mettre Player2 à la position de Player
- Désactiver Player
- Activer Player2
- CurrentPlayer=1
Mon problème est le suivant : Pour le script Player Manager, je veux récupérer plusieurs informations de mes objets "Player" et "Player2" : La position du transform en x et y, pouvoir activer/désactiver l'objet. Mais je ne sais pas comment m'y prendre pour avoir ces informations
Voici mon code actuel
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class PlayerManager : MonoBehaviour {
public static bool CurrentPlayer=false;
private PlayerScript player;
private Player2Script player2;
// Use this for initialization
void Start () {
player = (GameObject)FindObjectOfType (typeof(PlayerScript));
player2 = (GameObject)FindObjectOfType(typeof(Player2Script));
player2.gameObject.SetActive (false);
}
// Update is called once per frame
void Update () {
if (Input.GetKey ("X") && CurrentPlayer == false) {
player.gameObject.SetActive (false);
player2.transform.position.x=player.transform.position.x;
player2.transform.position.y=player.transform.position.y;
CurrentPlayer = true;
player2.gameObject.SetActive (true);
}
if (Input.GetKey ("X") && CurrentPlayer == true) {
player2.gameObject.SetActive (false);
player.transform.position.x=player2.transform.position.x;
player.transform.position.y=player2.transform.position.y;
CurrentPlayer = false;
player.gameObject.SetActive (true);
}
}
}
Merci d'avance