Bonjour ! J'essaie de créer un jeu sous unity et j'aimerai implémenter une mécanique qui permet à mon perso principale de se transformer en petit objet. J'ai le sprit de l'objet mais je ne sais pas comment coder en csharp de fait de se "transformer" : Est ce qu'il faut changer le sprite ou c'est un un échange de place parent/enfant ?
Je suis un peu paumé donc toute aide est la bienvenue !
Merci d'avance
Transformer un personnage en objet
Re: Transformer un personnage en objet
Salut,
une manière qui me semble simple est de faire de ton objet un enfant du personnage, et par exemple dans le script du controller du personnage, ajoutez une fonction que désactive le renderer du personnage et son collider, bloque son mouvement, et active l'objet et son collider.
une manière qui me semble simple est de faire de ton objet un enfant du personnage, et par exemple dans le script du controller du personnage, ajoutez une fonction que désactive le renderer du personnage et son collider, bloque son mouvement, et active l'objet et son collider.
-
- Messages : 3
- Inscription : 21 Avr 2022 11:33
Re: Transformer un personnage en objet
Ok je vois, c'est ce que je m'étais dis aussi.
Est ce que tu as une idée de comment cela rendrai en csharp ?
Je suis débutant mais je sait faire un if input getbuttondown cependant je n'arrive pas à savoir quoi mettre dans le if pour faire disparaitre le collider et changer le rigidbody de mon perso ainsi que faire apparaitre celui de mon objet
Est ce que tu as une idée de comment cela rendrai en csharp ?
Je suis débutant mais je sait faire un if input getbuttondown cependant je n'arrive pas à savoir quoi mettre dans le if pour faire disparaitre le collider et changer le rigidbody de mon perso ainsi que faire apparaitre celui de mon objet
Re: Transformer un personnage en objet
En admettant que ton personnage ait la structure suivante, et que le jeu soit en 2D :
Voici la trame d'un script à ajouter au Player pour passer de l'un à l'autre.
Code : Tout sélectionner
Player (avec un renderer)
SpriteObject
Code : Tout sélectionner
using UnityEngine;
public class SwitchPlayer : MonoBehaviour
{
private Renderer playerRenderer;
private GameObject child;
private Renderer childRenderer;
private void Awake ()
{
// Récupère les objets et components.
child = GameObject.Find ("SpriteObject");
childRenderer = child.GetComponent<Renderer> ();
childRenderer.enabled = false;
playerRenderer = GetComponent<Renderer> ();
}
private void Update ()
{
// Barre d'espace pour changer d'objet.
if (Input.GetKeyDown (KeyCode.Space))
{
childRenderer.enabled = !childRenderer.enabled;
playerRenderer.enabled = !playerRenderer.enabled;
}
}
}
-
- Messages : 3
- Inscription : 21 Avr 2022 11:33
Re: Transformer un personnage en objet
Merci beaucoup !