Page 1 sur 1

[RESOLU][DB-AL] allumer et eteindre un spotlight avec une touche

Publié : 18 Mai 2018 20:59
par Benjamin22!
bonjour je voudrais savoir comment allumer et éteindre un spotlight comme une lampe torche en CSharp car je ne trouve que des tutos en java ou alors je ne comprends pas. Voici ce que j'ai fais :

Code : Tout sélectionner

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

public class TorchScript : MonoBehaviour {

	 // Use this for initialization
	void Start () {
        GetComponent.<light>.enabled = true;
    }
	
	// Update is called once per frame
	void Update () {
        if ((Input.GetKey("f")) && (GetComponent.< light >.enabled = false)
        {
            GetComponent.< light >.enabled = true;
        }
        if ((Input.GetKey("f")) && (GetComponent.< light >.enabled = true)
        {
            GetComponent.< light >.enabled = false;
        }
    }
}
merci de m'aider
.
 ! Message de : Max
Attention à la section où vous postez. Utilisez les balises code SVP
Merci de lire la Netiquette.

Re: allumer et eteindre un spotlight avec une touche

Publié : 19 Mai 2018 07:25
par dan44180
tu dis si j'appuie sur f la lumiere s'allume puis tu dis si j'appuie sur f la lumiere s'eteind donc quand tu appuie sur f elle s'allume et s'eteind sans que tu puisse le voir tellement ca va vite.

Re: allumer et eteindre un spotlight avec une touche

Publié : 19 Mai 2018 09:58
par Max
Bonjour,

Donc, oui effectivement, ta façon d'écrire tes conditions fait que tu auras au final toujours le même état.
Au delà, ton code est truffé d'erreurs, à commencer par la syntaxe (comme dans l'écriture des GetComponent).
En suite, dans les instructions conditionnelles, lorsque l'on souhaite tester une égalité, on n’emploie pas '=' (opérateur d'affectation) mais '=='.
En suite, évite à tout prix les GetComponents à tout va. Définis une variable globale, que tu affectes par exemple dans ton Start(). Pareil pour GetKey, dans ton cas tu cherches visiblement un appui simple et non continu, donc passe plutôt par GetKeyDown.

Ton code simplifié et corrigé, pourrait donner ceci (placé sur ta Light):

Code : Tout sélectionner

using UnityEngine;

public class TorchScript : MonoBehaviour
{
    Light lght;

    // Use this for initialization
    void Start()
    {
        lght = GetComponent<Light>();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown("f"))
        {
            lght.enabled = !lght.enabled;
        }

    }
}

Re: allumer et eteindre un spotlight avec une touche

Publié : 19 Mai 2018 13:20
par Benjamin22!
Merci beaucoup c'est vrai que je suis pas très fort en CSharp :gene: j'ai testé et ça marche merci :amen: