C'est un tower of druaga dans le style pour ceux qui connaissent. ( je cherche un codeur bon niveau js unity, dispo sous facebook de temps en temps pour des questions simples, pour apprendre plus rapidement ).
J'en suis au stade de coder la génération aléatoire d'un niveau type :
- Un nombre aléatoire de pièce compris entre 6 et 12, répartis dans un espace de 150x150 metre.
- Chaque pièce a une taille aléatoire compris entre largeur 4-8 et longueur 5-8.
Pour le moment ces 2 fonction fonctionnent bien à un détail près, je n'arrive pas à utiliser l'instantiation d'objet tout en spécifiant un préfab parent pour utiliser des vector3 locaux. Car pour le moment si mes prefab pièces apparaissent bien aléatoirement aux 4 coins de ma zone level, mes instances de bloc ( les dalles de sols ) du fait des vector 3, apparaissent par rapport au point 0 0 0 de mon level.
> Si quelqu'un peut m'aider en javascript pour ce point ? Car j'ai tout googeliser et je n'ai rien réussi à utiliser.
Avec la solution de unity officiel j'ai des soucis de " transform" is not a member of "object". Que je ne comprend pas.
> Idem pour l'utilisation de local vector 3.
Ensuite d'autres points que je ne trouve pas encore :
> L'utilisation de variable public d'un script à l'autre. J'ai suivit des tuto mais cela ne fonctionne pas.
si quelqu'un à un tuto à jour ou un exemple tout bête à recopier en js. Car dans l'avenir j'en aurais besoin.
Voici mon projet pour le moment :
Un prefab " generateur " qui fabrique les pièces avec ce script :
Code : Tout sélectionner
#pragma strict
private var leveltaille = 75;
private var nbpiece : int;
public var piece: Transform;
function Start () {
nbpiece = Random.Range(6,12);
for (var i: int = 0; i < nbpiece; i++) {
Instantiate(piece, new Vector3(Random.Range(-leveltaille, leveltaille), 0, Random.Range(-leveltaille, leveltaille)), Quaternion.identity);
}
}
function Update () {
}
function OnGUI ()
{
GUI.Box(Rect(60,50,130,50),"nbpiece :" + nbpiece);
}
Code : Tout sélectionner
#pragma strict
import System.Collections.Generic;
private var PieceLargeurTaille : int;
private var PieceLongueurTaille : int;
public var block ;
var spacing = 2.0;
function Start () {
PieceLargeurTaille = Random.Range(4,8);
PieceLongueurTaille = Random.Range(5,8);
for (var y = 0; y < PieceLargeurTaille; y++) {
for (var x=0;x<PieceLongueurTaille;x++) {
var pos = Vector3 (x, 0, y) * spacing;
Instantiate(block, pos, Quaternion.identity);
block.transform.SetParent(piece, false);
}
}
}
function Update () {
}
function OnGUI ()
{
GUI.Box(Rect(60,200,130,50),"longueurtaille :" + PieceLongueurTaille);
GUI.Box(Rect(60,250,130,50),"longueurtaille :" + PieceLargeurTaille);
}
Merci de votre aide si vous le pouvez.
Je tiendrais ce topic régulièrement à jour de mes avancés de mon coté.
Viendra après, la génération des portes et des murs, puis des couloirs pour relier les salles.
Ensuite la génération des monstres et du héro, leurs déplacement de 1 case par case etc.