Desactiver un objet au bout d'un certain temps

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Desactiver un objet au bout d'un certain temps

Message par Kamiloo95 » 22 Avr 2015 09:52

Bonjour a tous,
Je voudrais désactiver la lumière dans mon jeu au bout d'un certain temps, je suis donc allé dans la documentation de unity et j'ai trouvé Time.timeSinceLevelLoad. Mais quand je l'introduit dans mon code, la console m'affiche :

Assets/SCRIPTS/Time.js(12,22): BCE0019: 'timeSinceLevelLoad' is not a member of 'Time'.

Voici mon code :

Code : Tout sélectionner

#pragma strict
var lumiere : GameObject;
private var temps : double;

function Start () 
{
	lumiere.SetActive(true);
}

function Update () 
{
	temps = Time.timeSinceLevelLoad;
	
	if ( temps >= 60 && temps <= 180 )
	{
		lumiere.SetActive(false);
	}
}
Merci d'avance

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6268
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Desactiver un objet au bout d'un certain temps

Message par boubouk50 » 22 Avr 2015 10:07

... Je ne vois pas de faute dans le nom... Serait-ce dû au #pragma strict? Quelle version d'Unity tu utilises?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Desactiver un objet au bout d'un certain temps

Message par Kamiloo95 » 22 Avr 2015 10:17

J'utilise la version 5 de unity moi aussi je me suis dit que c'etait peut etre la version d'unity le probleme et j'ai cherché sur internet mais je n'ai rien trouvé :?
Pourtant c'est bien dans la doc de unity .

Avatar de l’utilisateur
Max
Messages : 8807
Inscription : 30 Juil 2011 13:57
Contact :

Re: Desactiver un objet au bout d'un certain temps

Message par Max » 22 Avr 2015 10:57

Déjà commencer par ne pas nommer tes scripts avec des noms de classes, comme tu l'as fait avec Time.js. Cela t'épargnera bien des soucis ;)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Desactiver un objet au bout d'un certain temps

Message par Kamiloo95 » 22 Avr 2015 11:06

J'ai retirer le #pragma strict et je n'ai plus d'erreur mais mon code ne fonctionne pas :

Code : Tout sélectionner

var lumiere : GameObject;
private var temps : double;

function Start () 
{
	lumiere.SetActive(true);
}

function Update () 
{
	temps = Time.timeSinceLevelLoad;
	
	if ( temps >= 6 && temps <= 180 )
	{
		lumiere.SetActive(false);
	}
}
PS : Ok max je ferais attention la prochaine fois .

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6268
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Desactiver un objet au bout d'un certain temps

Message par boubouk50 » 22 Avr 2015 11:36

Donc résolu?
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Desactiver un objet au bout d'un certain temps

Message par giyomuSan » 22 Avr 2015 12:28

un invoke ou coroutine me parait plus approprie pour ca que de pomper sur l update .

Kamiloo95
Messages : 72
Inscription : 06 Avr 2015 10:14

Re: Desactiver un objet au bout d'un certain temps

Message par Kamiloo95 » 22 Avr 2015 13:33

Oui enfin reussi, j'ai utilisé Invoke :

Code : Tout sélectionner

#pragma strict
var lumiere : GameObject;

Invoke ("Nuit", 60);
Invoke ("Jour", 120);

function Nuit () 
{
	lumiere.SetActive(false);
}

function Jour ()
{
	lumiere.SetActive(true);
}
Et si je veut repeter cette action en abondance ?
Je ne vais pas mettre 50 Invoke ?
Dernière édition par Kamiloo95 le 22 Avr 2015 13:42, édité 1 fois.

Avatar de l’utilisateur
NDrew
Messages : 581
Inscription : 25 Oct 2013 15:14
Localisation : Clermont-Ferrand

Re: Desactiver un objet au bout d'un certain temps

Message par NDrew » 22 Avr 2015 13:38

essais avec un invoke. Cette methode te permet d'appeler une fonction et donner un delais avant l'appel

Donc :
Invoke("maFunction",1.0); va appeler la function maFunction dans 1 seconde. Il suffit de mettre le code dans maFunction pour desactiver le gameObject comme tu le souhaite.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6268
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Desactiver un objet au bout d'un certain temps

Message par boubouk50 » 22 Avr 2015 15:20

Code : Tout sélectionner

#pragma strict
var lumiere : GameObject;

//LightSwitch va être appelée dans 60 secondes toutes les 60 secondes.
InvokeRepeating ("LightSwitch", 60, 60);

function LightSwitch () 
{
   //Active et Désactive la lumiere en fonction de l'état précédent
   lumiere.SetActive(!lumiere.activeSelf);
}
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Verrouillé

Revenir vers « (Js) Javascript »