Je fais un jeu de plateforme où pour différents aspects du niveau, vous devez changer de personnage. Chaque personnage doit avoir des propriétés différentes et autres. J'ai utilisé ce tutoriel https://www.youtube.com/watch?v=vD5pW97-050 mais cela ne fait que changer le sprite car les deux personnages font partie du même gameobject avec le même corps rigide et le même collisionneur. J'utilise C# et aimerais vraiment de l'aide si quelqu'un connaissait une solution. Voici mon script de contrôleurs de joueurs, qui inclut le script de changement de caractères trouvé dans le tutoriel. Toute aide serait appréciée Merci!Essayer de changer de caractère 2d
using UnityEngine;
using System.Collections;
public class controller : MonoBehaviour
{
public float topSpeed = 15f;
bool facingRight = true;
bool grounded = false;
public Transform groundCheck;
float groundRadius = 0.2f;
GameObject Player, Player2;
int characterselect;
public float jumpForce = 700f;
public LayerMask whatIsGround;
void Start()
{
characterselect = 1;
Player = GameObject.Find("Player");
Player2 = GameObject.Find("Player2");
}
void FixedUpdate()
{
grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
float move = Input.GetAxis("Horizontal");
GetComponent<Rigidbody2D>().velocity = new Vector2(move * topSpeed, GetComponent<Rigidbody2D>().velocity.y);
if (move > 0 && !facingRight)
flip();
else if (move < 0 && facingRight)
flip();
}
void Update()
{
if(grounded&& Input.GetKeyDown(KeyCode.Space))
{
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, jumpForce));
}
{
if (Input.GetKeyDown(KeyCode.E))
{
if (characterselect==1)
{
characterselect = 2;
}
else if (characterselect==2)
{
characterselect = 1;
}
}
if (characterselect==1)
{
Player.SetActive(true);
Player2.SetActive(false);
}
else if (characterselect==2)
{
Player.SetActive(false);
Player2.SetActive(true);
}
}
}
void flip()
{
facingRight = ! facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
La seule différence principale que je veux est les collisionneurs, comme il va être un jeu simple, chaque caractère différent est une forme différente – Nosnhoj
Oh, je vois. Vous pouvez simplement utiliser deux préfabriqués différents, il suffit de faire l'un des colliders sous la forme de l'objet avec un CircleCollider2D, un PolygonCollider ou un simple collisionneur de boîtes. – Veld