[DB - AL][UNITY 2D] Problème avec le Respawn
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :
Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé
Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie
Exemple :
[DB-RS] Mouvement perso multijoueur
-
- Messages : 54
- Inscription : 19 Déc 2017 23:44
[DB - AL][UNITY 2D] Problème avec le Respawn
Bonjour, j'aimerais avoir votre avis.
J'ai un script qui me permet de respawn lorsque je passe sous un niveau précis (hauteur) et il marche.
Le seul probleme, c'est que mon perso et tout ce qui va avec (arme) respawn bien, mais la position du curseur ne reviens pas sur la souris mais bouge en fonction des mouvement de celle ci depuis le dernier endroit ou je suis mort(le curseur étant un gameobject).
Je ne comprend pas car j'ai mis le curseur en tant que enfants mais rien n'y fais. Le gameobject "player" se detruit normalement et réparait bien mais le curseur reste a sa positions
Merci de votre aide. Si vous avez besoin d'une vidéo pour illustrer tout ça, il n'y a pas de problème.
PS: Mon problème est résolu! Mais je ne sais pas comment le mettre en résolu... ^^
J'ai un script qui me permet de respawn lorsque je passe sous un niveau précis (hauteur) et il marche.
Le seul probleme, c'est que mon perso et tout ce qui va avec (arme) respawn bien, mais la position du curseur ne reviens pas sur la souris mais bouge en fonction des mouvement de celle ci depuis le dernier endroit ou je suis mort(le curseur étant un gameobject).
Je ne comprend pas car j'ai mis le curseur en tant que enfants mais rien n'y fais. Le gameobject "player" se detruit normalement et réparait bien mais le curseur reste a sa positions
Merci de votre aide. Si vous avez besoin d'une vidéo pour illustrer tout ça, il n'y a pas de problème.
PS: Mon problème est résolu! Mais je ne sais pas comment le mettre en résolu... ^^
Dernière édition par damien-max le 11 Fév 2018 17:19, édité 1 fois.
- boubouk50
- ModoGenereux
- Messages : 6219
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [UNITY 2D] Problème avec le Respawn
Sans le code utilisé pour ton curseur, c'est pas évident.
Tu l'as mis enfant de quoi?
Le réinitialises-tu au respawn? Genre sa position relative.
Tu l'as mis enfant de quoi?
Le réinitialises-tu au respawn? Genre sa position relative.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
-
- Messages : 54
- Inscription : 19 Déc 2017 23:44
Re: [UNITY 2D] Problème avec le Respawn
Bon alors voici le lien de la vidéo montrant le probleme + le script du curseur et du Game Master:
https://youtu.be/wEPqDuVgjzQ
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cursor : MonoBehaviour {
void Start () {
gameObject.transform.position = Input.mousePosition;
}
// Update is called once per frame
void Update () {
}
}
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class GameMaster : MonoBehaviour{
public static GameMaster gm;
void Start(){
audio = GetComponent<AudioSource>();
if (gm == null) {
gm = this;
}
}
AudioSource audio;
public Transform playerPrefab;
public Transform spawnPoint;
public int spawnDelay = 2;
public Transform spawnPrefab;
public IEnumerator RespawnPlayer () {
audio.Play ();
yield return new WaitForSeconds (spawnDelay);
Instantiate (playerPrefab, spawnPoint.position, spawnPoint.rotation);
Instantiate (spawnPrefab, spawnPoint.position, spawnPoint.rotation);
}
public static void KillPlayer (Player player) {
Destroy (player.gameObject);
gm.StartCoroutine (gm.RespawnPlayer());
}
}
Re: [UNITY 2D] Problème avec le Respawn
Bonsoir Damien-max,
Tes scripts me laissent dubitatif
Concernant la partie Cursor, tu as mis tout le code là ?
A savoir que tu as nommé ta classe Cursor comme une classe de l'API, Cursor, qui elle pourrait t'être utile, comme avec le SetCursor. A potasser je pense.
Tes scripts me laissent dubitatif
Concernant la partie Cursor, tu as mis tout le code là ?
A savoir que tu as nommé ta classe Cursor comme une classe de l'API, Cursor, qui elle pourrait t'être utile, comme avec le SetCursor. A potasser je pense.
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ
Re: [UNITY 2D] Problème avec le Respawn
En faite, il faudrait savoir ou ce trouve ton GameObject, tu dit l'avoir mit en child mais de quoi ? Car dans ton script GameMaster on peux voir playerPrefab et spawnPrefab, alors si ton GameObject contenant ton script Cursor ne ce déplace pas (alors qu'il devrait être détruit en même temps que le Player GameObject) j'en déduis que le GameObject contenant Cursor est parent, donc tu doit crée une fonction dans ton script Cursor pour bouger ce fameux GameObject.
Code : Tout sélectionner
public class Cursor : MonoBehaviour
{
void Start ()
{
ResetCursor();
}
void ResetCursor()
{
gameObject.transform.position = Input.mousePosition;
}
}
Code : Tout sélectionner
public Cursor cursorScript; // On récupère l'instance du script Cursor, drag and drop ton gameObject contenant Cursor ici dans la hierarchie.
public IEnumerator RespawnPlayer ()
{
audio.Play ();
yield return new WaitForSeconds (spawnDelay);
Instantiate (playerPrefab, spawnPoint.position, spawnPoint.rotation);
Instantiate (spawnPrefab, spawnPoint.position, spawnPoint.rotation);
cursorScript.ResetCursor(); // On appel la méthode pour reset
}
-
- Messages : 54
- Inscription : 19 Déc 2017 23:44
Re: [DB - AL][UNITY 2D] Problème avec le Respawn
D'accord, merci de vos réponse
Je teste ça au plus vite!
EDIT: j'ai appliquer le script mais ca ne marche pas. Peut etre j'ai zappé une partie?
Je teste ça au plus vite!
EDIT: j'ai appliquer le script mais ca ne marche pas. Peut etre j'ai zappé une partie?
Dernière édition par damien-max le 01 Fév 2018 21:53, édité 2 fois.
-
- Messages : 54
- Inscription : 19 Déc 2017 23:44
Re: [UNITY 2D] Problème avec le Respawn
enfaite, cursor est enfant de Player. VoilàTwiixy a écrit : ↑01 Fév 2018 02:33En faite, il faudrait savoir ou ce trouve ton GameObject, tu dit l'avoir mit en child mais de quoi ? Car dans ton script GameMaster on peux voir playerPrefab et spawnPrefab, alors si ton GameObject contenant ton script Cursor ne ce déplace pas (alors qu'il devrait être détruit en même temps que le Player GameObject) j'en déduis que le GameObject contenant Cursor est parent, donc tu doit crée une fonction dans ton script Cursor pour bouger ce fameux GameObject.Code : Tout sélectionner
public class Cursor : MonoBehaviour { void Start () { ResetCursor(); } void ResetCursor() { gameObject.transform.position = Input.mousePosition; } }
Code : Tout sélectionner
public Cursor cursorScript; // On récupère l'instance du script Cursor, drag and drop ton gameObject contenant Cursor ici dans la hierarchie. public IEnumerator RespawnPlayer () { audio.Play (); yield return new WaitForSeconds (spawnDelay); Instantiate (playerPrefab, spawnPoint.position, spawnPoint.rotation); Instantiate (spawnPrefab, spawnPoint.position, spawnPoint.rotation); cursorScript.ResetCursor(); // On appel la méthode pour reset }
-
- Messages : 54
- Inscription : 19 Déc 2017 23:44
Re: [UNITY 2D] Problème avec le Respawn
Je viens de me rendre compte que je ne t'ai pas tout dis
voici un autre script du cursor:
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
public class MousePositionCursor : MonoBehaviour
{
Vector3 posMouse;
// Use this for initialization
void Awake()
{
}
// Update is called once per frame
void Update()
{
posMouse = Camera.main.ScreenToWorldPoint(Input.mousePosition);
posMouse.z = 0;
gameObject.transform.position = posMouse;
}
}