2016-11-27 5 views
1

Ich habe fast mein Spiel gemacht. Allerdings möchte ich unendlich viele Feinde erzeugen, wie in avoider Spielen. Ich habe jedoch versucht zu recherchieren und kein Glück. Wie kann ich das machen? Es ist das einzige, was ich tun muss, um mein Spiel zu beenden.Einheit: Feind Generation Code

Der BlockScript.cs Code (Der Feind-Code) ist die folgende:

using UnityEngine; 
using System.Collections; 

public class BlockScript : MonoBehaviour { 

    private GameObject wayPoint; 
    private Vector3 wayPointPos; 
    private Rigidbody2D rigidBody2D; 
    public bool inGround = true; 
    private float jumpForce = 400f; 

    private float speed = 6.0f; 
    void Start() { 

     wayPoint = GameObject.Find("wayPoint"); 
    } 

    private void awake() 
    { 
     rigidBody2D = GetComponent<Rigidbody2D>(); 
    } 


    void Update() { 

     if (inGround) 
     { 
      inGround = false; 

      rigidBody2D.AddForce(new Vector2(0f, jumpForce)); 
     } 

     wayPointPos = new Vector3(wayPoint.transform.position.x, transform.position.y, 
      wayPoint.transform.position.z); 

     transform.position = Vector3.MoveTowards(transform.position, 
      wayPointPos, speed * Time.deltaTime); 

     Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0)); 

     if(transform.position.y< min.y) 
     { 
      Destroy(gameObject); 
     } 

    } 
} 
+0

Willkommen bei Stack-Überlauf. Sie können Ihre Frage verbessern. Bitte lesen Sie [Minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve). Wenn Ihr Code Ihr konkretes Problem mit nichts Zusätzlichem zeigt, zeigen Sie Respekt denen gegenüber, die sich freiwillig melden, um Ihnen zu helfen. Sie können Ihre Frage verbessern, indem Sie Ihren Code zur besseren Lesbarkeit formatieren und das Scrollen überflüssig machen. – zhon

Antwort

1

Die typische Lösung wäre, um Ihre Gegner zu speichern (die komplette Hierarchie für eine GameObject) in einem prefab so dass sie sein können wiederverwendet und aus dem Code instanziiert. Erstellen Sie dann einen Verweis auf Ihr Prefab und instanziieren Sie es wann immer Sie es für richtig halten. Zum Beispiel:

public GameObject EnemyPrefab; // assign this in editor 
(...) 
Instantiate(EnemyPrefab, transform.position, transform.rotation); // creates a new enemy 

Sie werden wahrscheinlich brauchen diese Funktionalität von einem separaten Skript zu steuern, nicht vom Feind Skript selbst (zB erstellen ein spezielles EnemySpawner Skript.)

+0

Ja, Sie müssen über Prefabs lernen. – Fattie

+0

OMG! Es funktionierte! Ich danke dir sehr! –

+0

Freude zu helfen! – apk