Accueil Forums J’ai besoin d’aide Unity3D Problème de collision Répondre à : Problème de collision

#1078

KiziLom
Participant

J’en profite pour poser une autre question (la première est toujours d’actualité; je n’ai toujours pas trouvé de réponse pour le moment :))

Je bloque sur un scrpit qui me semble pourtant correct, en fait je voulais faire un systeme pour changer d’animation en fonction de l’arme utilisé.
Du coup pour faire un test j’ai fais ca:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SwitcherArme : MonoBehaviour
{

//DeclarationVariables

public GameObject Principale;
public GameObject Secondaire;

private CharacterController Joueur;
private Animator Animation;

void Start()
{

Principale.SetActive(true);
Secondaire.SetActive(false);

Joueur = GetComponent<CharacterController>();
Animation = GetComponent<Animator>();
}

void Update()
{

//SwitchArmes

if (Input.GetKeyDown(KeyCode.X))
{
Principale.SetActive(true);
Secondaire.SetActive(false);
}

if (Input.GetKeyDown(KeyCode.X))
{
Principale.SetActive(false);
Secondaire.SetActive(true);
}

//Animations

if (Input.GetKey(KeyCode.H) & Principale & !Secondaire)
{
Animation.SetBool(“Walk”, true);
}

if (Input.GetKey(KeyCode.H) & !Principale & !Secondaire)
{
Animation.SetBool(“Walk”, false);
}

if (Input.GetKey(KeyCode.H) & Secondaire & !Principale)
{
Animation.SetBool(“Courir”, true);
}

if (Input.GetKey(KeyCode.H) & !Secondaire & !Principale)
{
Animation.SetBool(“Courir”, false);
}
}
}

//Le code marche à moitié, le problème c’est qu’ il me prend les deux armes en compte et je ne comprend pas du tout pourquoi, par exemple si je fais:

if (Input.GetKey(KeyCode.H) & Principale)
{
Animation.SetBool(“Courir”, true);
}else
{
Animation.SetBool(“Courir”, false);
}
Quand je vais appuyer sur la touche H equpié de mon arme principale, il va se mettre a marcher, et quand je vais la lâcher, il va arrêter de la jouer.
Mais si j’équipe mon arme secondaire il va la jouer aussi, en gros pour lui l’arme Principale et Secondaire son la même chose, alors que sa ne devrai pas, ce sont bien deux GameObject différent :/
Je dois surement oublier un truc mais je ne vois pas lequel..
Merci pour votre aide 🙂