Ha oui, je vois (c'est vrai que ce n'est pas étonnant d'un autre côté si il doit chercher l'info au sein de toutes les scènes à chaque frame ^^')
bon bhen je crois que cette fois j'ai trouvé.
J'ai un script qui me permet de sélectionner un bras en fonction de l'item qui se trouve dans le slot que je sélectionne dans ma barre d'action (bras que je place manuellement dans le scriptable de chaque item). Donc j'ai ajouté une fonction qui permet de récupérer le bras dans une variable au moment de sélectionner l'item. ce script a un "public static de lui même"
Puis j'ai ajouté un script sur chaque bras :
Code : Tout sélectionner
public class ArmController : MonoBehaviour
{
[SerializeField]
private bool chargeLourde = false;
public bool ChargeLourde { get { return chargeLourde; } }
}
}
que je coche manuellement en fonction du bras pour indiquer si il s'agit d'une charge lourde ou non.
ensuite j'ai repris le script du joueur et ai modifié la fonction que j'avais montré précédemment pour faire ceci.
fonction que je placerais dans l'update :
Code : Tout sélectionner
private void Fatigue() //Test
{
if (Quickslot.instance.CurrentArm.ChargeLourde) // là au lieu de faire un find, je récupère la donné de mon script static et si le bool "chargeLourde" est coché, alors, je lance la suite.
{
status.isTired = true;
Debug.Log("youhou");
}
else
{
status.isTired = false;
}
if (status.isTired == true)
{
currentWalkSpeed = Mathf.Lerp(currentWalkSpeed, stats.fatigue,
Time.deltaTime * stats.smoothWalkSpeed);
}
ça semble fonctionner correctement, et j'espère que cette méthode ne posera pas de problèmes de performances ^^
Merci encore pour ton aide.