játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] > 7 < [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]
Instalok - Tag | 543 hsz       Online status #208278   2015.09.11 20:50 GMT+1 óra  
Előfordulhat, hogy nem jól kezeli, viszont egyébként sem érdemes ékezetes fájlneveket használni. Gondolj bele, ha olyan helyre kerül a szoftvered, ahol nincs ez a nyelv telepítve, akkor milyen karakterek kerülnek oda? Szerintem egyszerűen használj angol abc-t.

   
Slyrfecso - Tag | 44 hsz       Online status #208277   2015.09.11 20:08 GMT+1 óra  
Ezt egy jelnek veszem amit írtál, mert még rám is vár az ügyfelek regisztrálása.
A hasselt secretKey-en kívül még én sem találtam biztonságosabb megoldást.

Elnézést, hogy a kérdésed megválaszolása előtt kérdést teszek fel, de bízom benne, hogy
mindketten kapunk választ.

Az inventory-mban az ékezetes icon-ok nem jelennek meg.
Encode-olásra sok megoldást találtam, de vagy nem jól alkalmazom, vagy Unity bugról van szó.
Az ékezetes file-neveket nem tölti be, ha a nevük stringben van tárolva.
A Unity fórumon részleteztem, de ha valaki találkozott már ilyen problémával, jó lenne ha segítene:
Accented character

   
Instalok - Tag | 543 hsz       Online status #208276   2015.09.11 19:01 GMT+1 óra  
Jelszóküldést azt hogy érdemes megcsinálni szerintetek? Az oké, hogy nem plain textként tárolom az adatbázisban a jelszót, hanem legalább hashelem, viszont, ha a hashelés belekerül a kódba (amely, mint tudjuk könnyen visszafejthető, lásd ILSpy), akkor a hálózaton elküldött hashelt kód visszafejthető az eredeti jelszóvá könnyedén. Vagy valami ilyesmi.

   
Slyrfecso - Tag | 44 hsz       Online status #208274   2015.09.10 10:53 GMT+1 óra  
Az új inventory lista működik, úgyhogy minden oldalnak saját listája van.
Köszönöm szépen ez egyenlőre működik, magamra szedek egy kis tudást és utána újra írom a scripetet hurkokkal együtt.




Kód:
...
public List<Item> inventory11 = new List<Item>();
...
inventory11.Add (new Item());
...

// PAGE 11 BEGIN ----------------------------------------------

if (PAGE11)
{

inventory11[0] = database.items[551];


GUI.BeginGroup(new Rect(20, 80, 430, 530));
if (GUI.Button (new Rect (0, 0, 100, 20), "" ,buttonBack ))
{
PAGE1 = true;
PAGE11 = false;


}

GUI.Label(new Rect(105, 0, 200, 20), "09. Székek, forgószékek" ,pageHeaderStyle); //PAGE 11


int j = 0;
Event slotEvent = Event.current;

for (int y = 0; y < slotsY; y++)
{
for (int x = 0; x < slotsX; x++)
{
Rect slotRect = new Rect(0+x*105, 25+y*80, 100, 75);
GUI.Box (slotRect, "", skin.GetStyle ("Slot"));
slots[j] = inventory11[j];

if (slots[j].itemName != null)
{
GUI.DrawTexture(slotRect,slots[j].itemIcon);
if (slotRect.Contains(Event.current.mousePosition))
{
tooltip = CreateTooltip(slots[j]);
showTooltip = true;

if(slotEvent.isMouse && slotEvent.type == EventType.mouseDown && slotEvent.button == 0 )
{

Instantiate (inventory11[j].itemPrefab);
print ("Clicked " + j);

}

}



}
if(tooltip == "")
{
showTooltip = false;
}

j++;

}

}





GUI.EndGroup();
}

// PAGE 11 END ----------------------------------------------

Ezt a hozzászólást Slyrfecso módosította (2015.09.10 12:54 GMT+1 óra, 800 nap)

   
Slyrfecso - Tag | 44 hsz       Online status #208273   2015.09.10 10:33 GMT+1 óra  
Köszönöm szépen ezt már próbáltam, mindkét esetben hibaüzenettel elszáll.
Idézet
Parameter name: index
System.Collections.Generic.List`1[Item].set_Item (Int32 index, .Item value) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Collections.Generic/List.cs:639)
Inventory.DrawInventory () (at Assets/script/Inventory/Inventory.cs:1076)
Inventory.OnGUI () (at Assets/script/Inventory/Inventory.cs:100)


Viszont igazad van, hogy felülírja az előző elemeket és vagy új listát, vagy törölnöm kell az inventory betöltött elemeit.
Van ötleted mi lehet a hiba?

   
Tunyu - Tag | 448 hsz       Online status #208272   2015.09.09 23:12 GMT+1 óra  
Azért marad meg az előző listából is meg elem, mert nem törlöd az előző elemeket hanem csak felülírod.Egy új oldalra lépésnél vagy hozz létre egy új listát pl.:
Kód:
inventory = new List<Item>();
vagy simán ürítsd ki a meglévőből pl.:
Kód:
inventory.Clear();
parancsal, és ez után mehet bele az új adatbázis elemek.
Kb így
Kód:
if (PAGE2)
{
inventory.Clear();
inventory[0] = database.items[0];
inventory[1] = database.items[1]; ...


Ha nem külön-külön töltenéd fel minden egyes index helyét hanem használnál 1-2 hurkot jelentősen csökkenthetnéd a script méretét is.

   
Slyrfecso - Tag | 44 hsz       Online status #208271   2015.09.09 16:22 GMT+1 óra  
Nagyon köszönöm, nagyon jó ötlet, sajnos ennél bonyolultabb amire szükségem van, mert a gombokat különböző néven kell elneveznem azokat pozicionálnom kell. Ezt az előzőekben írtak alapján meg is oldottam.

Tunyu ha tudsz abban segíthetnél, hogy miért hagyja kirajzolva azokat az elemeket, amik a másik inventoryban üres helyek?
(huu ezen sokat gondolkoztam, nem sikerült leírnom jobban, de ha kipróbáljátok a projektemet, rögtön érthető lesz
http://terberendezo.alexbutor.hu
user: a
pass: a
3. szék ikon
03 és 01-es termékcsaládok közötti váltás során látható, hogy a 22. slotnak üresnek kellene lennie, de kirajzolja a 03-as termékcsalád 22. slot tartalmát.
A többi termékcsaládban az üres helyekre üres képeket töltöttem, be de ez azért nem jó, mert látszólag üres slotok fölé húzva megjelenik a Tooltip.

Bármi ötletet szívesen vennék.
Az inventoryt ide nem másolom be, mert baromi hosszú lenne, de a Unity forumon az alábbi linken megtekinthető.
http://forum.unity3d.com/threads/how-to-add-multiple-pages-in-inventory.352700/

   
Tunyu - Tag | 448 hsz       Online status #208270   2015.09.09 10:44 GMT+1 óra  
Kód:
public List<GameObject> selectedItems;
private string[] str;
private int selected = 0;
void Start(){
selectedItems = new List<GameObject>();
}
void OnGUI() {
str = new string[selectedItems.Count];
for(int i = 0; i< selectedItems.Count;i++){
str[i] = selectedItems[i].name;
selected = GUI.SelectionGrid(new Rect(0,0,Screen.width,Screen.height),selected,str,7);
}
}

Így az aktuális darabszámnak megfelelően hozza létre a gombokat,jelen esetben egy sorban 7 gombot, de ez lehet 5 vagy 10 is.

Ezt a hozzászólást Tunyu módosította (2015.09.09 22:36 GMT+1 óra, 801 nap)

   
Slyrfecso - Tag | 44 hsz       Online status #208269   2015.09.09 07:44 GMT+1 óra  
Megoldottam, úgyhogy minden elem pozicióját külön sorba írtam, majd a csoportokat if (pageX) aktív tölti csak be. Minden oldalnak külön ciklusa van.
Abban segíthetnétek, hogy a slots-okat hogyan lehet törölni, mert ha az egyik csoportban kevesebb elem van, akkor az előző csoportból ott marad az üres helyeken.
Továbbá vannak olyan helyek a gridben, amit szándékosan átugrottam.

Végső megoldásként, amit nem szeretnék, egy azonos üres elemet betölthetnék, de ez további 100 sort jelent

Remélem tudtok segíteni.

   
Slyrfecso - Tag | 44 hsz       Online status #208265   2015.09.08 12:22 GMT+1 óra  
Sziasztok!

Egy kis segítséget kérnék ismét. Egy inventoryban szeretnék oldalakat létrehozni, amikhez külön állítanám be az adatbázis elemeit.

ItemDatabase (0-250 id-s elemet tartalmaz, amelyek 50-esével csoportosíthatóak és külön oldalon megjeleníthetőek.)
Kód:
// Use this for initialization
void Start () {
for (int i = 0; i < (slotsX * slotsY); i++)

{
slots.Add(new Item());
inventory.Add (new Item());

}
database = GameObject.FindGameObjectWithTag("Item Database").GetComponent<ItemDatabase>();
//COMFORT TERMÉKEK
inventory[0] = database.items[0];



Egy ilyen kódot találtam, de nem tudom az enyémre átírni.
Kód:
pages.Add (newItem());

(pages[2] as ItemGridPage).SetSlotItem(0, 0, database.items[0]);

   
Matzi - Szerkesztő | 2520 hsz       Online status #208197   2015.08.28 22:25 GMT+1 óra  
Projektor. Csak akkor rajzolod ki amikor azok vannak, amikre hatnia kell, aztán rajzolod a többit.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Instalok - Tag | 543 hsz       Online status #208196   2015.08.28 20:22 GMT+1 óra  
Igazából nem kijelölésre kell, azt inkább csak példának hoztam.

   
Tunyu - Tag | 448 hsz       Online status #208195   2015.08.28 19:49 GMT+1 óra  
Ha nem fontos hogy alatta legyen, csak simán hozzá kell adni egy halo-t minden kijelölt objektumhoz.

   
Instalok - Tag | 543 hsz       Online status #208194   2015.08.28 18:37 GMT+1 óra  
Ti hogyan csinálnátok egy olyan "markert", ami követi az alatta lévő terepet? Valamilyen projektív textúrázás kellene nekem valószínűleg. Viszont nem terrain-specifikus kellene, mert modelleken is állhat a játékos (aki alatt lenne ez a jelzés). Olyasmire gondolok, mint a stratégiai játékokban az egységek kijelölését mutató jel az adott egység alatt. Vagy hasonló, mint ez.

Például projectorral, és valahogy szűrni, hogy mire ne vetítsen?

   
Viperion - Tag | 540 hsz       Online status #208139   2015.08.22 10:01 GMT+1 óra  
Az unity weboldalán letöltéseknél az additional downloads alatt abuilt in shaders az micsoda?
Extra shader csomag amit nem tartalmaz az additional downloads alatti 32 bites unity telepítő?

   
mogul - Tag | 143 hsz       Online status #208131   2015.08.21 01:04 GMT+1 óra  
lehetséges, de a charcontrollerét (aminek saját fizikája van). lehet sima capsulecolliderrer+rigidbody hogy velocity vagy addforce ammi mozgassa. addforce-szal nekem egész jól kijött. talán mert nem áll meg azonnal, így van átmenet a futó/járó - álló között.

tunyu, van ott a physics matrix-nél olyan h raycast affecting on trigger colliders v hasonló (hacsak nem együtt használod, valszeg nem erről van szó). nem használsz translate-t? akkor nem működik a fizika. és mindkét ütközőn collider kell legyen.

   
Viperion - Tag | 540 hsz       Online status #208129   2015.08.19 17:00 GMT+1 óra  
A charactercontroller.move a velocity-t állítgassa így mozgassa az objektumot?

   
FZoli - Szerkesztő | 4892 hsz       Online status #208124   2015.08.19 06:35 GMT+1 óra  
nem, valószínűleg azért törétnik, mert nem vagy körültekintő. A fizikai enginnel óvatosan kell interaktolni, nem mindegy, hogy és mikor akarod változtatni az állapotukat. A doksi nagyon szépen leírja ezt, próbáld ezt az olvasás dolgot.
   
Tunyu - Tag | 448 hsz       Online status #208123   2015.08.19 06:25 GMT+1 óra  
Nem kizárt hogy valamit én rontok el, de nálam nem működik az ütközés detektálás.
A Physics.Raycast() működik de se az OnTriggerEnter() se az OnCollisionEnter(). Ha isTrigger be van kapcsolva áthaladnak egymáson az objektumok de akkor sem észleli az ütközést. Rigidbody van.Régen működött, most mit rontok el!?

   
Viperion - Tag | 540 hsz       Online status #208122   2015.08.19 01:40 GMT+1 óra  
Én ezt nem értem.
Nyugodtan próbáljátok csak,ki hogy ha csináltok egy plane objektet és egy kockát aminek lesz rigidbodyja is majd ha translatelod,folyamatosan lefelé ,akkor pattogni fog míg át nem esik a plane objektumon.

Vagy ez azért nem történik mert a charactercontroller move metódusa többet csinál mint a translate metódus?

   
Matzi - Szerkesztő | 2520 hsz       Online status #208121   2015.08.19 00:14 GMT+1 óra  
Viperion:
Oda van írva fölé szépen:
"...the motion will only be constrained by collisions. It will slide along colliders."
Ami ékes magyarra fordítva azt jelenti, hogy azért nem esik át a talajon, mert azt a fizikai rendszer elintézi, hogy ne menjenek át egymáson. Szóval a válasz a kérdésedre az, hogy a script nem hibás, csak nem vettél figyelembe egy kitételt, amit odaírtak.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Viperion - Tag | 540 hsz       Online status #208120   2015.08.18 22:53 GMT+1 óra  
A gravitáció az ami lent tarja a talajon de ha tovább csökkented az y értékét mint ahol a talaj van,akkor át megy rajta nem? Ez logikus. Ezért ha a talajon van az objekt ,akkor ez nem futhat le vagy ha miden áron le akarjuk,hogy fusson ,akkor kell oda azaz air változó amit oda írtam.

   
Tunyu - Tag | 448 hsz       Online status #208119   2015.08.18 22:40 GMT+1 óra  
Szerintem pont ez az ami lent tartja a talajon!

   
Viperion - Tag | 540 hsz       Online status #208101   2015.08.14 16:07 GMT+1 óra  
http://docs.unity3d.com/ScriptReference/CharacterController.Move.html
Itt a doksiban ez a script nem hibás?
A forráskód ezen része mindig lefut:
Kód:
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);

,akkor is ha a játékos nem ugrik ezért a gravitáció átt fogja vinni a talajon nem?

Kéne oda egy byte változó ami számon tartaná,hogy éppen a levegőben van e vagy sem és akkor Így kéne hogy legyen nem:?
Kód:
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    // Ha a földön van ,akkor értéke 0 ha levegőben,akkor pedig 1.
    private byte isInAir = 0;
    private Vector3 moveDirection = Vector3.zero;
   
    void Update() {
        CharacterController controller = GetComponent<CharacterController>();
        if (controller.isGrounded) {
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            isInAir = 0;
            if (Input.GetButton("Jump")) {
                moveDirection.y = jumpSpeed;
                isInAir = 1;
            }
        }
        moveDirection.y -= isInAir * gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
    }

Ezt a hozzászólást Viperion módosította (2015.08.18 03:27 GMT+1 óra, 824 nap)

   
mogul - Tag | 143 hsz       Online status #208097   2015.08.13 00:54 GMT+1 óra  
Idézet
Slyrfecso :

ABBAN kérném még a segítségeteket, hogy két Box Colider érintkezése esetén a visszaérkezési pont
az egyik felénél legyen.




transform (mint reference nem jó? position = position?)
vagy distance kettő között (mármint collider.pos és hit.point) és megfelezed?

   
FZoli - Szerkesztő | 4892 hsz       Online status #208094   2015.08.12 06:31 GMT+1 óra  
normalizálnod kell a képek méretét.

2D elemek méretét neked kell normalizálni. Egy olyan koorináta térbe kell őket beleméretezned ahol a kéeprnyő pozíciót nem picelben, hanem [0,0]-[1,1] float értékek között adod meg, ahol a [0,0] az egyik sarok, a [1,1] pedig az átellenes

3D elemekkel ez eleve nem létezik a probléma, ott screenspaceba transzformálsz mindent, majd raszterizálsz, egy kocka minden felbontáson azonos méretű lesz a "monitorodban". Ha fogsz egy plane-t és a kamera elé tszed, ráhúzol egy textúrát, az nem fog kilógni különbőzú felbontású képernyőkön, csak ha amonitor képeránya is eltér.

Ezt a hozzászólást FZoli módosította (2015.08.13 07:01 GMT+1 óra, 828 nap)
   
Tunyu - Tag | 448 hsz       Online status #208093   2015.08.12 05:55 GMT+1 óra  
Már miért lenne butaság!? Egy 25000x11000 pixel felbontású képet is meg tudsz nézni egy normál monitoron, az más tészta hogy mekkora a memória igénye, de ebbe a képbe bele tudsz zummolni lényegében és úgy végig pásztázhatod akár 200x120 -as felbontáson is.Vagy léteznek olyan alkalmazások unity store-ban is, amik kezelik a HD képeket úgy hogy távolról kisebb felbontást mutat és ahogy közeledsz, úgy akár a repedéseket is megnézheted a falon például.

   
Pixi - Tag | 206 hsz       Online status #208091   2015.08.11 21:27 GMT+1 óra  
Egyértelmű, hogy lebutított, kicsinyített mását látod, hisz amit a kijelző és/vagy a beálított felbontás fizikailag korlátoz, azt te csak szoftveresen tudod belegyömöszölni, ez pedig abból áll, hogy a 2000x2000-es képnek te egy 20x20-as mását látod a monitoron, vagy pedig nem kicsinyíted a kirajzolandó textúra méretét, hanem végigpásztázod 20x20-as lépésekben, bár utóbbi elég nagy idiótaság.

   
Viperion - Tag | 540 hsz       Online status #208090   2015.08.11 21:18 GMT+1 óra  
Igen erre gondoltam. És ott egyik hozzászólásba volt írva,hogy egy 20x20 as ablakban is elférhet egy fullhd kép.
De nem értem,hogy egy fullhd kép,hogyan férhet el pl egy 20x20 ablakban.
Ez csak úgy lehet ,higy veszt a felbintásából nem?

Tehát ha 20x20 pixeles a windows ablak,akkor az azt jeknti,hogy 20x20 pixelből ál.
Egy fullhd kép pedig ettől rengetegszer több,akkor hogyan férhet bele?

   
Pixi - Tag | 206 hsz       Online status #208089   2015.08.11 20:01 GMT+1 óra  
Viperion:
Mintha én tettem volna fel már régebben hasonló kérdést itt, bár most nem tudom pontosan erre gondolsz-e, de less rá, esetleg kicsit görgess lejjebb ha kell, kép is van mellékelve arról amire gondolok:

Régi hsz.

   
Tunyu - Tag | 448 hsz       Online status #208088   2015.08.11 19:04 GMT+1 óra  
Ez alapján meg tudod írni a sajátod.

   
Tibsy - Tag | 307 hsz       Online status #208087   2015.08.11 16:54 GMT+1 óra  
Szeretnék adatokat ki/be (txt,png.) tölteni egy már kész projektbe egy megadott mappából de sajnos még azt sem tudom hogy keresem az erre vonatkozó parancssort unity manual-ba
lényegébe ezzel azt szeretném megoldani hogy a játékos saját fotót rakhasson a játékba ill az ott készült eredményt ki tudja menteni valahova de se a mentésre se a betöltésre nem találtam megoldást a legapróbb segítséget is előre köszönöm
   
Slyrfecso - Tag | 44 hsz       Online status #208086   2015.08.11 14:05 GMT+1 óra  
Végre sikerült kitalálnom egy olyan megoldást ami majdnem tökéletes,
ráadásul egy tapadás funkcióval is kiegészült.
A tesztbe beépítettem egy debug.consolt, ahol látható mi is történt.

A logikai változó és az OnTrigger nagyon nagy segítség volt, még1x köszönöm mindenkinek.
(Jelenleg a két szekrényre és az első asztalra állítottam be a pontos Box colidert, így csak azok tapadnak jól)


ABBAN kérném még a segítségeteket, hogy két Box Colider érintkezése esetén a visszaérkezési pont
az egyik felénél legyen.



TESZT2

Kód:
using UnityEngine;
using System.Collections;

//[RequireComponent(typeof(BoxCollider))]

public class drag_mouse : MonoBehaviour
{

private bool Triggered = false;


Vector3
screenPoint,
offset,
scanPos,
curPosition,
curScreenPoint;



void OnMouseDrag()
{
if(Input.GetKeyDown(KeyCode.A))
transform.Rotate(0, 90, 0);

if(Input.GetKeyDown(KeyCode.C))
Destroy (gameObject);

if(Input.GetKeyDown(KeyCode.D))
Instantiate (gameObject);


float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z );


}


void OnTriggerEnter (Collider myTrigger)
{
if(myTrigger.gameObject.tag == "Player")
{
scanPos = gameObject.transform.position;
Triggered = true;
Debug.Log(name + " Triggered");
}
}


void OnTriggerExit (Collider myTrigger)
{
if(myTrigger.gameObject.tag == "Player")
{
Debug.Log(name + " Snap feloldása Drag alatt");
Triggered = false;
}
}




void OnMouseUp()
{
if (Triggered)
{
transform.position = scanPos;
Debug.Log(name + " Vissza az érintkezési ponthoz");

}

}


}

   
Viperion - Tag | 540 hsz       Online status #208076   2015.08.08 23:29 GMT+1 óra  
Ha azt akarom,hogy minden képernyő felbontásban jól mutassa a játékot a képernyő ,akkor ,hogyan csináljam meg,hogy jó legyen.

Például ha van két ugyanolyan képarányú de eltérő felbontású képernyő akkor a fullh felbontásra tervezett képek sokkal nagyobbak lesznek a hd képernyőn. Ez miatt a képek egy része ki esik a képernyőből.

Még rosszabb a helyzet abban az esetben ha a képarány is más.

Hogyan kell ezt megoldani?

Ezt a hozzászólást Viperion módosította (2015.08.10 16:33 GMT+1 óra, 831 nap)

   
Instalok - Tag | 543 hsz       Online status #208073   2015.08.08 13:18 GMT+1 óra  
Egyébként a 0,0000003 miért nem jó neked a 0,0 helyett? A "rosszul állítottad" össze részt meg úgy értettem, hogy rossz helyen vannak a pivotok, az anchor lehet rossz, a méret rosszul van belőve, stb., így különböző felbontásokon máshogy néz ki.

   
Tunyu - Tag | 448 hsz       Online status #208072   2015.08.08 12:42 GMT+1 óra  
Ez a funkció csak screen space módban érhető el és kicsit javít a pontosságon, de már maradok a world space módnál, itt az instant létrehozott objektumokat viszonylag pontosan oda rakja és olyan méretben amilyenben szeretném az editorban és a build-ban is.

   
zbalai - Tag | 50 hsz       Online status #208071   2015.08.08 10:54 GMT+1 óra  
Tunyu: nekem akkor nyomta ezeke a kis számokat a UI kontrollokra amikor a Canvason "pixel perfect" beállítást használtam. Ilyenkor a több szint miatt az alsóbb szinteken törtszámora jön ki, ha pixel pontosan akarsz valamit elhelyezni.

   
Slyrfecso - Tag | 44 hsz       Online status #208065   2015.08.07 14:36 GMT+1 óra  
Lehet az a legjobb ha megmutatom, hogy mit szeretnék. Nagyon demo, ezért kérlek ne nevessetek hangosan

Test1

A bútorok nem haladhatnak át egymáson, ezért OnTrigger, vagyis érintkezés esetén egyet vissza kellene dobnia az adott tengelyen. A bútorokat pontosan egymás mellé kellene illeszteni.
Ha esetleg valaki Skypeon segítene, nagyon-nagyon hálás lennék!!!

ifjfecso.home

   
Tunyu - Tag | 448 hsz       Online status #208060   2015.08.06 23:16 GMT+1 óra  
Nem tudom mit állíthattam rosszul össze, de ha így van akkor nagyon...
Screen Space módban kipróbáltam az összes beállítási lehetőséget de sehogy sem volt jó, vagy nagyobb volt a prefab gomb mint a másik vagy fordítva vagy a pozíciója nem stimmelt, és akkor ez csak az editor mód, a buildban meg egészen más.Így maradok a world space módnál, itt legalább csak a számokban tűnik fel az eltérés.Még azt is megnéztem hogy nem a multiple camera rendszer miatt van e, de egy szimpla cameránál is ugyan az van.

Slyrfecso :
Ha ezt rádobod az objektumodra akkor szépen működik,de az OnTrigger-el nem értem hogy mit akarsz.
Kód:
using UnityEngine;
using System.Collections;

public class Drag : MonoBehaviour {
public float distance = 10;

void OnMouseDrag(){
if (Input.GetKeyDown (KeyCode.A)) {
transform.Rotate (0, 10, 0);
}
if (Input.GetKeyDown (KeyCode.C)) {
Destroy (gameObject);
}
if (Input.GetKeyDown (KeyCode.D)) {
Instantiate (gameObject);
}
Vector3 objPosition = Camera.main.ScreenToWorldPoint( new Vector3(Input.mousePosition.x,Input.mousePosition.y,distance));
transform.position = objPosition;
}

}

Ezt a hozzászólást Tunyu módosította (2015.08.07 10:17 GMT+1 óra, 834 nap)

   
Instalok - Tag | 543 hsz       Online status #208059   2015.08.06 21:31 GMT+1 óra  
Tunyu: nem lehet, hogy rosszul állítottad össze a guit, és felbontásfüggő? Ezért néz ki másképp a standalone buildben, mint az editorban.

A worldspace esetén meg valószínűleg csak kerekítési probléma. Néha odarakja, ahova írod, máskor meg nem. Ez van. Ha megnézed, az azért elég kicsi egy szám.

   
Tunyu - Tag | 448 hsz       Online status #208057   2015.08.06 20:25 GMT+1 óra  
zbalai :
Használom a SetParent-et, de nem csak az instantiate-nál van gond.Ha simán lerakom a panelt és annak gyerekeként egy buttont, hiába állítom be az x pozíciót 0 rá, amint leütöm az entert, máris elugrik az értéke 3.742288e-06-ra, de ez más elemeknél is így van. Ez van world space módban.
Screen space - camera módban meg nagyon jól működik az instantiate, precízen oda rakja az adott koordinátára és szépen működik az editorban, de amikor megvan a build, az exe-ben teljesen eltérő helyre és méretben rakja le.
A viszonylag jó worldspace: http://jatekfejlesztes.hu/datas/users/3125-worldspace.jpg
És a kevésbé jó screenspace: http://jatekfejlesztes.hu/datas/users/3125-screenspace.jpg

Ezt a hozzászólást Tunyu módosította (2015.08.06 20:36 GMT+1 óra, 835 nap)

   
Slyrfecso - Tag | 44 hsz       Online status #208053   2015.08.06 13:56 GMT+1 óra  
Még egy kis segítség kellene. Az objectumokhoz Kinematic Riggidbody-t használok így a Triggerelést tudom Debuggolni. Részben el is értem, hogy észlelés esetén a transform.position megmozduljon, de sajnos arra az objektumra van hatással amelyikhez hozzáérek és nem ahhoz amelyikkel. így eltolja a tárgyat magától.

Hogyan tudnám az OnTriggert beágyazni az OnMouseDrag-be?
Illetve, hogy Triggelés esetén egyet visszalépjen az észlelés irányából?

Kód:
using UnityEngine;
using System.Collections;

//[RequireComponent(typeof(BoxCollider))]

public class drag_mouse : MonoBehaviour
{

private Vector3 screenPoint;




void OnMouseDrag()
{
if(Input.GetKeyDown(KeyCode.A))
transform.Rotate(0, 90, 0);

if(Input.GetKeyDown(KeyCode.C))
Destroy (gameObject);

if(Input.GetKeyDown(KeyCode.D))
Instantiate (gameObject);



float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z );

}


void OnTriggerEnter (Collider myTrigger) {
if(myTrigger.gameObject.tag == "Player"){
float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z);
Debug.Log(name + " Triggered");
}
}

}

   
zbalai - Tag | 50 hsz       Online status #208052   2015.08.06 13:43 GMT+1 óra  
Tunyu: Az Intantiate mindig a root-ba teszi az új GameObject-et. UI elemeknél viszont érdemes áttenni egy struktúrába.
Amiko viszont átteszed SetParent-el pl akkor hozzányúlhat a koordinátákhoz is.
Mindenesetre ha akarsz 5-10 perc skype konzultációt a témában akkor keress meg zbalai usernévvel.
Ja meg ilyen hosszú cuccokat én általában kiírom több sorba, akár több változóval.

   
Tunyu - Tag | 448 hsz       Online status #208020   2015.07.31 10:59 GMT+1 óra  
Írtam egy kis kódot a popup menü létrehozásához amiben egy button prefabot hívok meg. A gond ott van hogy az instantiate hívásban megadott adatoktól jelentősen eltér a button pozíciója és a szöge is.Én rontok el valamit, vagy ez valami hiba?Próbáltam a prefabon is beállítani, de akkor sem volt pontos.
Kód:
GameObject newResButton =
(GameObject)Instantiate (ButtonPref, new Vector3 (0.0f, (-10 + resolutions.Length * 30 / 2 - 30) - i * 30, 500.0f)
                         , Quaternion.Euler(new Vector3(10.0f,15.0f,0.0f))/*Inverse (ButtonPref.transform.rotation)*/)

   
Viperion - Tag | 540 hsz       Online status #208019   2015.07.31 02:28 GMT+1 óra  
Nem bírom megérteni ezt a részt.
Vizuális típus vagyok ezért próbálom elképzelni de itt összazavarodok.
Szavakba tudnátok önteni ezt a sort:
transform.position += Vector3.ClampMagnitude(v, Mathf.Clamp(radius - v.magnitude, 0, radius));
A 208012 hozzászólásban található a teljes kód de csak ezzel az egy sorral gyűlt meg a bajom.
A dokumentációban elolvastam mit csinálnak de nem látom mire jó ez így.

Ezt a hozzászólást Viperion módosította (2015.07.31 02:36 GMT+1 óra, 842 nap)

   
warlock - Törzstag | 704 hsz       Online status #208017   2015.07.30 15:01 GMT+1 óra  
Köszi.

   
Slyrfecso - Tag | 44 hsz       Online status #208016   2015.07.30 10:03 GMT+1 óra  
Gratulálok nagyon szép munka, a videó is elég jól szemlélteti a működését.

   
warlock - Törzstag | 704 hsz       Online status #208014   2015.07.29 18:42 GMT+1 óra  
Sziasztok.
Gondoltam világgá kürtölöm hogy végre kikerült az asset storera a voxel szerkesztőm, hátha érdekel valakit.
https://www.youtube.com/watch?v=Ci1pgz5HA4Q
https://www.assetstore.unity3d.com/en/#!/content/39877

   
Slyrfecso - Tag | 44 hsz       Online status #208012   2015.07.29 14:08 GMT+1 óra  
Sajnos korai volt az öröm, mert a Physics.OverlapSphere-nek nincs Box változata.
Tudnátok abban segíteni, hogyan lehetne ezt a scriptet átírni Box collideres-re?

Kód:
using UnityEngine;
using System;
using System.Collections.Generic;

public class SuperCharacterController : MonoBehaviour {

[SerializeField]
float radius = 0.5f;

private bool contact;

// Update is called once per frame
void Update () {

contact = false;

foreach (Collider col in Physics.OverlapSphere(transform.position, radius))
{
Vector3 contactPoint = col.ClosestPointOnBounds(transform.position);

Vector3 v = transform.position - contactPoint;

transform.position += Vector3.ClampMagnitude(v, Mathf.Clamp(radius - v.magnitude, 0, radius));

contact = true;
}
}

}

   
Slyrfecso - Tag | 44 hsz       Online status #208011   2015.07.29 10:28 GMT+1 óra  
Isten király vagy!!!!!!!
A drag scriptemhez hozzáadtam az általad belinkeltet és tökéletesen működik.
A sciptben gömb collider van azt módosítottam kockára és nem mennek át egymáson az objektumok!
Riggidbody-t sem kellett használnom.

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] > 7 < [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]