Unitybe hogy csináljam meg a következőt?
az van hogy van kettő gomb amikkel balra és jobbra menne a karakter ha a bal oldalit megnyomom tök jól balra megy de jobb oldalival is szintén balra megy
lehet több info kéne akkor irjatok
van egy repülő ennek kellene balra jobbra mennie
van két gomb (nem akartam és nem is tudnék touch eventet)
és a gombok hatására mozogna GetMouseButtonDown-al próbáltam de hiába adtam function bal / jobb
nem törődik vele hogy melyiket hajtsa végre
a mozgásra transform.Translate(vector3....)
ennyi elég?
PLAYER
#pragma strict
var speed : float = 3;
function Balra(){
if ( Input.GetMouseButton(0))
{
transform.Translate(Vector3(-speed,0,0)*Time.deltaTime);
}
}
function Jobbra(){
if ( Input.GetMouseButton(0))
{
transform.Translate(Vector3(speed,0,0)*Time.deltaTime);
}
}
rájöttem mi a gond de nem tudom hogy javítsam ki
az hogy amit írtam az akkor történik ha megnyomom a bal egeret és nem a gombra kattintok
hogy kellene a gombkattintást belevenni nem a sima kattintást
1.UnityScript et felejtsd el, valamivel egyszerűbb, mint a c#, de idővel váltani fogsz, mert vannak limitációi, nagyobb szívás vele mások kódjait felhasználni, és lassabb is.
2.Input.GetMouseButton(0) -> ez azt vizsgálja, hogy az első egérgombot(~bal egérgomb) nyomva tartod-e. Mindkét esetben ezt vizsgálod, ha a jobb gombot akarod nézni, akkor Input.GetMouseButton(1). Vagy 2, a jó ég tudja, nem használom így, irányítást nem jó ötlet hardcode olni.
3.A függvényben csak a mozgatást végezd, a feltétel vizsgálatot előtte, olvashatóbb lesz tőle a kód, és nem utolsó sorban gyorsabb is(ha tudod, hogy merre kell mozgatni, akkor elég feltétel vizsgálat, nem kell kettő).
4.A transform ot érdemes egy változóba lementeni pl Awake()\Start() ban, ha annyit írsz, hogy transform.valami az pontosan ugyanaz, mintha azt írnád, hogy GetComponent<Transform>().valami - a GetComponent pedig lassú, mert végig kell mennie az összes komponensen. Nincs vele gond persze, amíg ritkán használod, de gyorsan össze tud adódni az ilyesmi.
Ha pedig azt akarod, hogy csak a kattintásra menjen arrébb(nem pedig nyomvatartásra), akkor ezt használd
Input.GetMouseButtonDown(int button)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!