首页 > 解决方案 > 在随机点放置敌人

问题描述

我担心这个问题很久了,以至于每次我跑的时候,我的敌人都会随机给我点数。我在对象上使用 DUPLICATE。例如,点形成球,如果我有更多的敌人,他们不想在道路点上正确显示。我的目标是让对象在启动时正确且随机地出现在点上。谢谢你的建议

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Linq;
using Random = UnityEngine.Random; 

public class Randomplace : MonoBehaviour {


    public int minNumber =0;
    public GameObject[] wayPoints;
    public GameObject[] enemys;  
    Vector3 pos;
    private List<int> _validNumbers;
    private int number;

 private void Awake()
    {
        _validNumbers = new List<int>();
        for (int i = minNumber; i <=  wayPoints.Length; i++)
            _validNumbers.Add(i);   
   }
         
       
  void   Start()
    {    
    

 for (int j=0; j<enemys.Length;j++) {
       if(enemys[j].activeInHierarchy)    {  
          
           enemys[j].SetActive(true);
           number = GetRandomNumber();
           GameObject waypoint = wayPoints[number];
          Vector3 pos= waypoint.transform.position;
           enemys[j].transform.position =  pos; //places objects at random points 
         }
         }
         }
     
    private void Update()
    {          

    }

    private int GetRandomNumber()
    {
        var nextIndex = Random.Range(0, _validNumbers.Count - 1); //
         var result    = _validNumbers[nextIndex];
        _validNumbers.RemoveAt(nextIndex);
        return result;
    }
}

标签: unity3d

解决方案


推荐阅读