Casser des pierres, et les récolter.

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
Avatar de l’utilisateur
iAlikun
Messages : 23
Inscription : 30 Mars 2016 14:52

Casser des pierres, et les récolter.

Message par iAlikun » 04 Avr 2016 17:39

Bonjour, bonsoir à vous.


Comme beaucoup, j'ai joué aux jeux de survie et, l'envie de créer un jeu vidéo m'est venue. Mais voilà, comme tous, je passe par l'apprentissage et, malheureusement pour moi, ne comprenant pas totalement l'anglais (et n'aimant pas tellement les traducteurs internet tels Google Traduction, Reverso ...), je ne visionne que des tutoriaux :triste1: .

Vous vous en doutez, la majorité des tutoriaux actuellement disponibles sur le web, ont étaient fait sous Unity 4, qui à l'époque, possédait MonoDevelop (que l'on peut toujours avoir en changeant ses paramètres). Mais, je préfère partir sur du neuf, et donc utiliser Microsoft Visual Studio.

Je fais donc appel à vous pour m'aider à réaliser l'objectif suivant:
• Lorsque le joueur s'approche d'un rocher ou d'un arbre, il peut, à l'aide de ses poings (mais aussi d'une arme s'il en possède), détruire l'arbre / rocher pour obtenir du bois / pierres.

Actuellement, je me suis aidé d'un tutoriel (malheureusement je ne me rappelle plus du nom de l'auteur :gene2: ) pour l'arbre, et voici mon script:

Code : Tout sélectionner

#pragma strict

var treeHealth : int = 5;

var logs : Transform;
var fruit : Transform;
var tree : GameObject;

var speed : int = 8;

function Start()
{
	tree = this.gameObject;
	GetComponent.<Rigidbody>().isKinematic = true;
}

function Update()
{
	if(treeHealth <= 0)
	{
		GetComponent.<Rigidbody>().isKinematic = false;
		GetComponent.<Rigidbody>().AddForce(transform.forward * speed);
		DestroyTree();
	}
}

function DestroyTree()
{
	yield WaitForSeconds(7);
	Destroy(tree);

	var position : Vector3 = Vector3(Random.Range(-1.0, 1.0), 0, Random.Range(-1.0, 1.0));
	Instantiate(logs, tree.transform.position + Vector3(0, 0, 0) + position, Quaternion.identity);
	Instantiate(logs, tree.transform.position + Vector3(2, 2, 0) + position, Quaternion.identity);
	Instantiate(logs, tree.transform.position + Vector3(5, 5, 0) + position, Quaternion.identity);

	Instantiate(fruit, tree.transform.position + Vector3(0, 0, 0) + position, Quaternion.identity);
	Instantiate(fruit, tree.transform.position + Vector3(2, 2, 0) + position, Quaternion.identity);
	Instantiate(fruit, tree.transform.position + Vector3(5, 5, 0) + position, Quaternion.identity);
}
Ce code permet que, lorsque la vie de l'arbre est à 0, de lâcher des fruits et du bois. Malheureusement, un problème persiste. Comment faire pour le raycast sur ce type d’événement ? Il faut forcément déclencher l'animation du personne lorsqu'il donne un coup (clic gauche) pour enlever de la vie à l'arbre, et ensuite, pouvoir récupérer les objets. Je n'ai pas réussi à réaliser le script du raycast pour cela.

Concernant les rochers, c'est bien pire, je n'ai rien trouvé sur ce sujet, les vidéos revenant le plus souvent sont "tree chopping" (la récolte du bois, en frappant les arbres). Auriez-vous un lien, par écrit ou vidéo, à me transmettre pour cela ?

Je sais que j'en demande beaucoup, et je comprendrai si vous ne pouvez pas répondre.

Je vous remercie infiniment de m'avoir lu,
En vous souhaitant une agréable journée / soirée.

nigel
Messages : 166
Inscription : 05 Mai 2015 01:51

Re: Casser des pierres, et les récolter.

Message par nigel » 04 Avr 2016 22:52

je vois pas trop comment peut fonctionner ton script avec le rigidbody qui devient true ou false,
mais je te propose de placer un script (edit: sur ton arbre ou rocher) qui détecte les l’entrée des collisions de ta hache par exemple,
ca doit pas être trop difficile regarde vers OnTriggerEnter()
ça explose -> Atomic Command
ca vole -> Long Range Black Cat

Avatar de l’utilisateur
iAlikun
Messages : 23
Inscription : 30 Mars 2016 14:52

Re: Casser des pierres, et les récolter.

Message par iAlikun » 06 Avr 2016 15:00

Le problème étant que je n'ai pas de hache. De ce que j'ai vu, il faudrait que l'arbre détecte ma main camera. Mais je ne sais plus comment faire :triste1:

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: Casser des pierres, et les récolter.

Message par simonj » 06 Avr 2016 15:23

Salut,

Dans l'idée, j'aurais bien vu ton personnage qui lance un rayon à une certaine distance. S'il rencontre un objet de type cassable, alors tu lui enlèves des points de vie en fonction de l'arme de ton personnage (Poing, hache, ...). Et c'est l'objet cassable qui sait ce qu'il doit faire.

En gros c'est bien séparer les intelligences des objets. L'arme sait de combien elle tape et à combien de distance. C'est le personne qui gère le raycast et qui transmet les informations de dégâts à l'objet cassable. Et c'est l'objet cassable qui gère tout seul sa destruction et sa création de loot.

Utiliser un raycast te permet de voir si tu as à la bonne distance, et si rien n'est entre le personnage et l'objet.

Avatar de l’utilisateur
iAlikun
Messages : 23
Inscription : 30 Mars 2016 14:52

Re: Casser des pierres, et les récolter.

Message par iAlikun » 08 Avr 2016 16:44

Merci pour votre réponse mais, je n'ai pas bien compris.

Mon personne n'a pas d'arme s'il est avec ses poings, non ?

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

Re: Casser des pierres, et les récolter.

Message par boubouk50 » 08 Avr 2016 16:47

Ça ne change rien, que ce soit tes poings ou une arme. Tes poings considérés seront comme une arme.
"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
iAlikun
Messages : 23
Inscription : 30 Mars 2016 14:52

Re: Casser des pierres, et les récolter.

Message par iAlikun » 08 Avr 2016 17:25

Ah merci, je vais tester ça :)

Verrouillé

Revenir vers « (Js) Javascript »