• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Unity. Tworzenie kola z kul.

VPS Starter Arubacloud
0 głosów
344 wizyt
pytanie zadane 10 grudnia 2016 w C# przez gab123 Mądrala (5,230 p.)
edycja 10 grudnia 2016 przez gab123
Witam,

Tworze w unity taka prosta gre gdzie takie pileczki kreca sie w okol innej piłeczki, a ta je zbija.

Ilosc kuleczek które się kreca w okol piłeczki jest zalezna od levelu, odleglos pileczek od piłeczki która je zbija również.

I nie wiem jak to zrobić żeby na początku gry utworone piłeczki w kolko były równej odleglosci miedzy sobą.

Nie proszę o gotowe rozwiązanie, tylko o to byscie mnie pokierowali jak mniej więcej to zrobić.

Mam nadzieje ze mnie zrozumieliście.

Z góry dziekuje.

1 odpowiedź

0 głosów
odpowiedź 10 grudnia 2016 przez niezalogowany
wybrane 12 grudnia 2016 przez gab123
 
Najlepsza
Czyżby Ctrl + C, Ctrl + V, Ctrl + V?

Efekt którego potrzebujesz jest dość prosty dość zrobienia; to zadanie to nic innego jak stworzenie wielokąta foremnego. Ideę wyjaśniłem tutaj (tylko że dla ciebie R jest stałe): http://szymonsiarkiewicz.pl/algorytmy/generator-asteroido-podobnych-obiektow-2d-generator-wielokatow/
komentarz 10 grudnia 2016 przez gab123 Mądrala (5,230 p.)

Hej, napisalam cos takiego :

using UnityEngine;
using System.Collections;
using UnityEngine.UI ;

public class Circle : MonoBehaviour
{

	public GameObject player ;

	public GameObject enemie ;

	int n ;

	Vector3 s = new Vector3 (0, 0, 0);

	float R;

	bool isConvex ;

	Vector3[] x;

	void Start(){

		n =  4 +  player.GetComponent<PlayerController>().level ;

		R = player.GetComponent<PlayerController>().level + 4.2f ;

		x = new Vector3[n] ;
			
		Debug.Log (n);

		Debug.Log (x);

		int i = 0;

		float kat = 360/n ;

		float d = R ;

		while(i<n){
			if (isConvex == false)
				d = Random.Range (0, R);

			kat = Random.Range (0, kat) + i * kat;

			x[i] = s + new Vector3(Mathf.Cos(kat)*d,Mathf.Sin(kat),0);

				Instantiate (enemie, x[i], Quaternion.identity);

			i +=1 ;
		
	}

}

 

I wszystko okey, tylko utworzona figura nie ma ksztaltu kola ale ksztalt elipsy i do tego roznica miedzy poszczegolnymi "enemies" (pileczkami) Nie jest zawsze taka sama. Jak to naprawic ?

komentarz 11 grudnia 2016 przez niezalogowany
Zrozum sposób działania algorytmu, u Ciebie nie powinno być żadnych randomów
komentarz 11 grudnia 2016 przez gab123 Mądrala (5,230 p.)
Doszlam do tego ale usuniecie ich nic nie dalo.
komentarz 11 grudnia 2016 przez niezalogowany

U Ciebie to się sprowadza do wybrania n punktów na okręgu o promieniu r, pseudo Unity C#:

void Generate(Vector2 pos, int n, int r)
{
  float alpha = 360f / float(n);
  for(int i=0; i<n; ++i)
  {
    float phi = alpha + i * alpha;
    phi = Mathf.Deg2Rad(phi);
    x = pos.x + Mathf.cos(phi);
    y = pos.y + Mathf.sin(phi);
    Instatiate(prefab, new Vector3(x, y), Quaternion.identity);
  }
}

Pamiętaj że wpływ na ostateczny wygląd może mieć choćby sposób renderowania świata

komentarz 12 grudnia 2016 przez gab123 Mądrala (5,230 p.)
Dziękuje, teraz już widze gdzie zrobiłam błąd i wszystko mi działa jak należy.

Podobne pytania

0 głosów
2 odpowiedzi 278 wizyt
0 głosów
2 odpowiedzi 1,250 wizyt
+4 głosów
3 odpowiedzi 1,176 wizyt

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...