Ako náhodne umiestniť objekty na body? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako náhodne umiestniť objekty na body? – C / C++ – Fórum – Programujte.comAko náhodne umiestniť objekty na body? – C / C++ – Fórum – Programujte.com

 

juraj1750
Návštěvník
21. 4. 2021   #1
-
0
-

Zdravím

Dlho sa trápim s problémom ako náhodne umiestniť nepriateľov na body,ktoré u mňa tvoria gule? Pri spustení mi objekty umiestni náhodne ale niekedy na nesprávnom mieste,aj tam kde nemám body:

Ďakujem za rady.Tu je kód

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;
 Debug.Log(  "zomby su na cislach "+wayPoints[number]+"x"+ wayPoints[number].transform.position.x +
  "z"+wayPoints[number].transform.position.z+"vola"+enemys[j]);   
         }
         }
         }
     
    private void Update()
    {          

    }

    private int GetRandomNumber()
    {
        var nextIndex = Random.Range(0, _validNumbers.Count - 1); //
         var result    = _validNumbers[nextIndex];
        _validNumbers.RemoveAt(nextIndex);
        return result;
    }
}
Nahlásit jako SPAM
IP: 88.212.36.–
gna
~ Anonymní uživatel
1891 příspěvků
21. 4. 2021   #2
-
0
-

V Awake do _validNumbers vkládáš jedno číslo navíc (asi chceš < namísto <=), takže ti GetRandomNumber může vrátit neplatný index. Čekal bych, že to vyhodí vyjímku, která bude někde vidět.

Nahlásit jako SPAM
IP: 213.211.51.–
juraj1750
Návštěvník
21. 4. 2021   #3
-
0
-

#2 gna
Čísla sa vygenerujú pri starte v prikaze for
number = GetRandomNumber();
 

Nahlásit jako SPAM
IP: 88.212.36.–
gna
~ Anonymní uživatel
1891 příspěvků
21. 4. 2021   #4
-
0
-

#3 juraj175
co jsi tim chtel rict?

Nahlásit jako SPAM
IP: 213.211.51.–
juraj1750
Návštěvník
21. 4. 2021   #5
-
0
-

#4 gna
ako opraviť kód, aby sa správne objekty umiestnili na bodoch

dakujem

Nahlásit jako SPAM
IP: 88.212.36.–
gna
~ Anonymní uživatel
1891 příspěvků
22. 4. 2021   #6
-
0
-

Když máš třeba 10 waypointů, tak platné indexy jsou 0 až 9, ale do validNumbers vkládáš čísla 0 až 10. Takže ti GetRandomNumber může vrátit naplatný index (10). Víc z téhle trošky kódu nevyčtu.

Nahlásit jako SPAM
IP: 213.211.51.–
goskaxd0
Duch
31. 3. 2022   #7
-
-1
-
Mimo téma

Nedávno jsem nakupoval v About you a použil Picodi, kde dostávám cashback až 15%! Jaká skvělá nabídka! Utracené peníze se mi hned vrátily. Ideální pro jarní výměnu šatníku. Jediné, co musíte udělat, je přihlásit se a užívat si https://my.picodi.com/cz/

Nahlásit jako SPAM
IP: 62.133.129.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Body — založil body

Sedlové body matice — založil michal čížek

Libcurl http post body — založil Michal

C# primka mezi dvema body — založil Kryspin

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý