Comment afficher une icone pour ouvrir une porte ?

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
nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

Re: Comment afficher une icone pour ouvrir une porte ?

Message par nigel » 10 Mars 2016 14:02

essai peut être de t'inspirer de ça;

Code : Tout sélectionner

OnTriggerStay(collider other)  <---  validé automatiquement si le layer physique ne connait que celui du joueur.
 {
    
     if ( input.getKeyDown("e")
        {
            openDoor();              
        }
  }


void openDoor()        <---  animation mecanim ou coroutine
       {
           ...
       }
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

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

Re: Comment afficher une icone pour ouvrir une porte ?

Message par boubouk50 » 10 Mars 2016 14:05

C'est parce que ta condition n'est pas dans l'Update ():

Code : Tout sélectionner

var smooth = 2.0;
var DoorOpenAngle = 90.0;
var imageOfLetterE : GameObject;
private var open : boolean;
private var enter : boolean;

private var defaultRot : Vector3;
private var openRot : Vector3;

function Start(){
	defaultRot = transform.eulerAngles;
	openRot = new Vector3 (defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z);
}

//Main function
function Update (){
	if(open){
	//Open door
		transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
	}else{
	//Close door
		transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
	}

	if(Input.GetKeyDown("e") && enter){
		open = !open; 
	}
	
	imageOfLetterE.gameObject.SetActive (enter); //Activation décidée par Enter	
}

	

//Activate the Main function when player is near the door
function OnTriggerEnter (other : Collider){
	if (other.gameObject.tag == "Player") {
		enter = true;
	}
}

//Deactivate the Main function when player is go away from door
function OnTriggerExit (other : Collider){
	if (other.gameObject.tag == "Player") {
		enter = false;
	}
}
"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

DELEMA
Messages : 6
Inscription : 09 Mars 2016 23:36

Re: Comment afficher une icone pour ouvrir une porte ?

Message par DELEMA » 10 Mars 2016 14:16

Merci, c'est sympas, mais je sais pas coder. Je n'ai que quelques bases.
Je ne comprend même pas ce que tu as marqué désolé. :)

EDIT:

Finalement j'ai trouvé la solution, chu trop content. Voici le script pour ceux qui en voudrait. Et merci à Nigel, Iwa et Boukouk ! :D

EDIT2: le code de Boukouk (message juste au dessus) est bien mieux effectivement.

Code : Tout sélectionner

// Smothly open a door

var smooth = 2.0;
var DoorOpenAngle = 90.0;
var imageOfLetterE : GameObject;
private var open : boolean;
private var enter : boolean;

private var defaultRot : Vector3;
private var openRot : Vector3;

function Start(){
defaultRot = transform.eulerAngles;
openRot = new Vector3 (defaultRot.x, defaultRot.y + DoorOpenAngle, defaultRot.z);
}

//Main function
function Update (){
if(open){
//Open door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
}else{
//Close door
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaultRot, Time.deltaTime * smooth);
}

if(Input.GetKeyDown("e") && enter){
open = !open; 
}
}

if(enter){
imageOfLetterE.gameObject.SetActive (true);
}

else{
imageOfLetterE.gameObject.SetActive (false);
}

//Activate the Main function when player is near the door
function OnTriggerEnter (other : Collider){
if (other.gameObject.tag == "Player") {
enter = true;
imageOfLetterE.gameObject.SetActive (true);
}
}

//Desactivate the Main function when player is go away from door
function OnTriggerExit (other : Collider){
if (other.gameObject.tag == "Player") {
enter = false;
imageOfLetterE.gameObject.SetActive (false);
}
}

Verrouillé

Revenir vers « (Js) Javascript »