2016-09-18 1 views
1

J'essaie actuellement de faire fonctionner un jeu dans l'unité via C#. Je pense que j'ai fait du bon travail jusqu'à maintenant.Test de jeu C# Unity

Le jeu est un jeu d'empilage:

Une boîte se déplace de gauche à droite et vous appuyez sur espace pour empiler S'il est sur la dernière case que vous avez placé son aller plus loin.

Mais maintenant mon problème est: la boîte est un objet fabriqué dans Blender.

Mais je veux les boîtes que je crée sous la boîte actuelle que le joueur contrôle pour ressembler à la boîte que j'ai faite dans Blender.

Comment puis-je y parvenir? À ce stade, je viens d'utiliser:

GameObject cb = GameObject.CreatePrimitive(PrimitiveType.Cube); 
    cb.transform.position = new Vector3(CurrentX, CurrentY, CurrentZ); 

pour créer un cube normal.

+0

Vous avez probablement besoin d'une maison préfabriquée, google comment ils fonctionnent – Dunno

Répondre

0

Je ne pense pas que 2 lignes de code puissent faire tout ce que vous venez de mentionner. J'espère que ce n'est qu'un extrait de votre code.

Mais maintenant mon problème est: la boîte est un objet fabriqué dans Blender.

Mais je veux les boîtes que je crée sous la boîte actuelle, le lecteur contrôle pour ressembler à la boîte que j'ai faite dans Blender.

Vous devez exporter la boîte de Blender à .fbx, .blend ou tout autre format de modèle 3D qui est pris en charge dans l'unité. Vous pouvez ensuite importer ce fichier exporté dans Unity. Here est un tutoriel pour cela.

Marque qui a importé cube/gameobject dans un puis utilisez prefab la fonction Instantiate pour créer un nouveau cube à chaque fois au lieu de GameObject.CreatePrimitive.

Changer votre code actuel à

public GameObject boxPrfab; 
GameObject cb = Instantiate(boxPrfab, Vector3.zero, Quaternion.identity) as GameObject; 
cb.transform.position = new Vector3(CurrentX, CurrentY, CurrentZ); 

Assurez-vous de faire glisser cette maison préfabriquée dans la fente boxPrfab.

+0

merci pour l'aide, mais iam gauche avec un problème: je l'ai fait comme vous dit, mais maintenant il ya des boîtes et des plans de masse quand j'appuie sur l'espace ... il ne devrait pas y avoir autant de clones de la boîte et ils sont tous hors de propos ... y at-il un moyen d'inclure des images ici? –

+0

Je pense que j'ai oublié de metion que je ne veux pas les nouveaux cubes que je crée pour exécuter du code ... je veux juste qu'ils ressemblent à mon objet ... est-il peut-être un moyen plus facile de le faire? ou est-ce la meilleure façon de le faire? –

+0

Vous n'avez pas assez de réputation pour télécharger une photo ici. Vous pouvez télécharger l'image sur imgur.com puis fournir l'URL ici dans votre question. En ce qui concerne votre problème, je ne comprends pas quel problème vous avez maintenant. Tant que le code de vos questions fonctionne, celui de ma question devrait fonctionner pour vous. – Programmer

0

Je suppose que le boxGameObject que vous voulez générer existe déjà dans la scène. Créez ensuite un Prefab dans l'onglet Project en cliquant avec le bouton droit de la souris sur l'onglet et en sélectionnant Create ->Prefab. Nommez le préfabriqué quelque chose de sensible comme e. g. BoxPrefab. Maintenant faites glisser le boxGameObject de l'onglet Hierarchy dans l'onglet Project vers l'entrée préfabriquée nouvellement créée.

Maintenant, vous pouvez ajouter une variable membre publique au script qui doit instancier la zone spawns, e. g. comme ceci:

public GameObject PrefabBox = null; 

Drag'n'Drop Ensuite, l'entrée prefab que vous avez créé avant de l'onglet Project sur cette nouvelle propriété PrefabBox dans l'onglet Inspector. Dans ce même script, vous pouvez instancier les spawns du préfab. g.par le code suivant:

GameObject boxSpawn = GameObject.Instantiate<GameObject>(
    PrefabBox, 
    new Vector3(CurrentX, CurrentY, CurrentZ), 
    PrefabBox.transform.rotation); 

Find more info on instantiating GameObjects dynamically in the Unity3d docs.

Find the syntax of GameObject.Instantiate here.