[C#/JS] Ramasser une caisse de munitions

Cette section est destinée aux scripts partagés par la communauté. Chaque post est destiné à un script. Suivez bien les recommandations.
Avatar de l’utilisateur
Diridium
Messages : 24
Inscription : 11 Jan 2018 10:21

[C#/JS] Ramasser une caisse de munitions

Message par Diridium » 14 Jan 2018 18:24

Bonjour,

Aujourd'hui je partage un script destiné à un FPS (ou à n'importe quel type de jeu, c'est comme vous voulez).
Ce script vous permet de ramasser une caisse de munitions et ainsi augmenter votre nombre de munitions (très simple donc). Shoteject étant votre nombre de munitions actuel.

Voici le script en C# :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class AmmoBox : MonoBehaviour {


int ammo = 30;
GameObject eject;

private ShotEject shoteject;
private bool  showGUI = false;

void  Start (){
shoteject = GameObject.Find("Eject").GetComponent<"ShotEject">();
}

void  Update (){
	if(showGUI == true){
		if(Input.GetKeyDown("e")){
		shoteject.reserve += ammo;
		Destroy (gameObject);
		}
	}
}

void  OnTriggerEnter ( Collider hit  ){
if(hit.gameObject.tag == "Player"){
	showGUI = true;
}
}

void  OnTriggerExit ( Collider hit  ){
if(hit.gameObject.tag == "Player"){
	showGUI = false;
}
}

void  OnGUI (){
if(showGUI == true){
	GUI.Box( new Rect(Screen.width/2-100,Screen.height/2-12.5f,200,25), "Press E to pickup ammo");
	}
}
}
Et aussi en JavaScript pour ceux que ça intéresse ^^ :

Code : Tout sélectionner

#pragma strict

var ammo : int = 30;
var eject : GameObject;

private var shoteject : ShotEject;
private var showGUI : boolean = false;

function Start () {
shoteject = GameObject.Find("Eject").GetComponent("ShotEject");
}

function Update () {
	if(showGUI == true){
		if(Input.GetKeyDown("e")){
		shoteject.reserve += ammo;
		Destroy (gameObject);
		}
	}
}

function OnTriggerEnter(hit : Collider){
if(hit.gameObject.tag == "Player"){
	showGUI = true;
}
}

function OnTriggerExit(hit : Collider){
if(hit.gameObject.tag == "Player"){
	showGUI = false;
}
}

function OnGUI(){
if(showGUI == true){
	GUI.Box(Rect(Screen.width/2-100,Screen.height/2-12.5,200,25), "Press E to pickup ammo");
	}
}
Si vous avez un problème avec un script ou si j'ai fait une erreur, n'hésitez pas à me me le signaler :p
Dernière édition par Diridium le 15 Jan 2018 14:20, édité 1 fois.

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

Re: [CS/JS] Ramasser une caisse de munitions

Message par boubouk50 » 15 Jan 2018 10:34

Salut Diridium, merci pour le partage.
De ce que je lis dans le code, il manque la classe ShotEject pour que le script marche.
Ce serait bien aussi de spécifier que la scène doit avoir un objet appelé Eject qui comprend le Component ShotEject et ce qu'il fait (je suppose que c'est pour ta réserve de munition).

Aussi, vu que l'ammoBox a un Collider et qu'elle utilise les fonctions de Trigger, il serait plus judicieux d'utiliser ces fonctions (notamment OnTriggerStay) pour coder le ramassage, et ainsi délaisser l'Update ().
"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
Diridium
Messages : 24
Inscription : 11 Jan 2018 10:21

Re: [CS/JS] Ramasser une caisse de munitions

Message par Diridium » 15 Jan 2018 12:09

Salut,

Merci pour ces précisions, en fait le script de base était en JavaScript et donc je l'ai directement traduit, j'ai obligé de corriger certaines choses ^^

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

Re: [CS/JS] Ramasser une caisse de munitions

Message par boubouk50 » 15 Jan 2018 12:19

Certes, néanmoins quand tu partages un script, assure-toi qu'il soit tout de même fonctionnel. Ici, en l'état, il ne fonctionnera pas.
"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
Diridium
Messages : 24
Inscription : 11 Jan 2018 10:21

Re: [CS/JS] Ramasser une caisse de munitions

Message par Diridium » 15 Jan 2018 12:27

Je suis pas très doué pour expliquer (surtout mes scripts x) mais au moins je partage une base (peut-être qu'elle servira si quelqu'un arrive à la décrypter). La prochaine fois j'essaie de "décrypter" le script ou plutôt de l'expliquer avant de le partager

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

Re: [CS/JS] Ramasser une caisse de munitions

Message par boubouk50 » 15 Jan 2018 12:53

Fait surtout en sorte qu'il fonctionne correctement.
Le partage c'est bien, on est totalement pour. Il faut tout de même un minimum de finition dessus pour pas que ça ressemble juste à un tas de ligne de code. Qui plus est, pour ce genre de script pas non plus très poussé, ce seront surtout des novices en code qui pourraient en avoir besoin, donc qui ne comprendront pas grand chose à la programmation, c'est pourquoi il est important de partager du code fonctionnel, expliqué et commenté, facile à prendre en main par le premier qui vient.
"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

Répondre

Revenir vers « Scripts »