je suis nouveau sur le forum et je suis aussi débutant sur Unity 3D (par contre je suis développeur C/C++ de métier mais c'est la première fois que je fais du C#).
J'essaye de m'entrainer a faire les principes de base d'un RPG Tactics du style Disgaea.
Je suis donc parti par initialisé ma carte via du code et donc j'ai créer un Prefab avec un objet cube standard de Unity 3D.
Jusque la pas de soucis, mais par la suite j'ai voulu mettre un Prefab importé de blender et la au niveau du positionnement tout par de travers.
Voici le code (simplifié pour isolé le problème) :
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class GameManager : MonoBehaviour {
public GameObject TilePrefab;
public GameObject PlayerPrefab;
public int mapSize = 10;
List <List<Tile>> map = new List<List<Tile>>();
// Use this for initialization
void Start () {
generateMap();
}
void generateMap() {
map = new List<List<Tile>>();
for (int i = 0; i < mapSize; i++) {
List <Tile> row = new List<Tile>();
for (int j = 0; j < mapSize; j++) {
Tile tile = ((GameObject)Instantiate(TilePrefab, new Vector3(i - Mathf.Floor(mapSize/2),0, -j + Mathf.Floor(mapSize/2)), Quaternion.Euler(new Vector3()))).GetComponent<Tile>();
tile.gridPosition = new Vector2(i, j);
row.Add (tile);
}
map.Add(row);
}
}
}
Je suppose qu'il s'agit d'une scale relative a l'objet lui même et donc pour le positionnement sa ne conviens pas. J'ai donc cherché un peu pour connaitre la taille réel de mon Prefab et je suis tombé sur des astuces du type bounds.size.x et bounds.size.y. Sauf que a chaque fois que je fais un Log dessus, tout est toujours a 0 donc inutilisable.
Je vous remercie par avance de votre aide.
Cordialement