Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 5. červenec 2014, 20:50:35 Předmět: Unity - scény |
|
|
Poslední dobou si zkouším hrát s Unity a jedna věc mi není úplně jasná, a to zamýšlená architektura scén. Co má být scéna, a co nemá být speciální scéna a má být v rámci jedné scény.
Budu konkrétnější. Představte si třeba adventuru s inventářem. Inventář se otevírá zvlášť a má být přes většinu obrazovky, ve zbytku prosvítá stále samotná hra. Měla by být práce s inventářem ve samostatné scéně, nebo ne? _________________
|
|
Návrat nahoru |
|
|
Dlaha
Založen: 30. 07. 2007 Příspěvky: 598 Bydliště: Olomouc
|
Zaslal: 5. červenec 2014, 22:25:32 Předmět: |
|
|
Tak jak jsem to pochopil, tak scéna je samostatná část, která nepřímo vůbec nezasahuje do dalších scén. Příklad kdyby jsi dělal hru Vlak (snad znáš, stará DOSovka), tak by jsi měl scénu pro menu, credits a každý jeden level.
Pokud bych dělal adventuru, nejjednodušší by bylo pro každou obrazovku udělat samostatnou scénu a prefab objekt pro inventář (který by měl přístup k nějakému statickému objektů platnému pro celý průběh hrou).
Otázka by tady taky byla jak svižné by byly přechody mezi scénami, případně jestli unity zná například nějaký preload scén na pozadí. Nejsem expertem.
Pokud vím, tak scény nelze vkládat navzájem do sebe. _________________ Other Inside
Greenlitnuto! |
|
Návrat nahoru |
|
|
impresionista
Založen: 06. 07. 2014 Příspěvky: 17 Bydliště: Brno
|
Zaslal: 6. červenec 2014, 01:53:29 Předmět: |
|
|
Pokud jsem správně pochopil dotaz, tak ti jde v podstatě jen o zobrazení grafiky (inventáře)
Práci s inventářem bych zcela určitě nedával do jiné scény.Nenapadá mě jediný duvod čemu by to prospělo.Spíše naopak
Je to celkem zbytečný, a těžkopádný řešení, přenášet změny provedené v inventáři(v jedné scéně) zpět do hry ( v druhé scéně).
"Inventář se otevírá zvlášť a má být přes většinu obrazovky, ve zbytku prosvítá stále samotná hra. Měla by být práce s inventářem ve samostatné scéně, nebo ne?
Scena = level; nelze s tím zacházet jako s krytím vrstev, v grafickém editoru
těch možností jak to udělat je asi víc
jen tak letmo mě napadá třeba využití NGUI , GUITexture jakožto inventář(grafika, a buttony) před hlavní herní kamerou a enabled = true;
nebo třeba i druhá kamera, někde v prostoru která "kouká na inventář".
A jednoduše v případě potřeby zobrazit inventář, vypnout hlavní kameru, a zapnout druhou. |
|
Návrat nahoru |
|
|
Houp
Založen: 28. 07. 2007 Příspěvky: 672
|
Zaslal: 6. červenec 2014, 07:29:02 Předmět: |
|
|
Ok, díky. Mě tam trochu zmátlo aditivní přidávání scén.
Application.LoadLevelAdditive
Je tam sice popis: "This is useful for creating continuous virtual worlds, where more content is loaded in as you walk through the environment."
Který nesedí na vzorový případ, ale "Unlike LoadLevel, LoadLevelAdditive does not destroy objects in the current level. Objects from the new level are added to the current scene." trochu naznačilo, že by to šlo použít na dělání vrstev, ale asi tak to nebylo zamýšleno. _________________
|
|
Návrat nahoru |
|
|
Mem
Založen: 28. 07. 2007 Příspěvky: 1959 Bydliště: Olomouc
|
Zaslal: 6. červenec 2014, 08:13:07 Předmět: |
|
|
Hlavně ten loading je zvlášť na mobilních platformách znatelný (x sekund, kdy se hra nehýbe, maximálně dohrává hudba na pozadí a můžeš nechat točit indikační kolečko). V našich prvních hrách jsme to ještě používali (menu i každý level ve FireLords je samostatná scéna), ale z tohoto důvodu jsme se na to vykašlali a používáme jedinou scénu, kde si zobrazujeme/vytváříme vše dynamicky podle stavu hry (zjednodušeně máme i na každém objektu skript a nastavené property se seznamem stavů hry, ve kterých má být objekt viditelný a aktivní. Při změně stavu se automatiky skryje). |
|
Návrat nahoru |
|
|
DespeRadoX
Založen: 28. 07. 2007 Příspěvky: 520
|
Zaslal: 6. červenec 2014, 09:22:14 Předmět: |
|
|
aby sa ti nemotalo pozadie hry s inventarom na scene , pouzivaj layers, ja to robim tak ze na inventar/gui si vytvorim novu kameru, pre nu vytvorim layer s nazvom gui a vsetky objekty co tam patria davam pood ten isty layer...v pravo hore si potom v editore lahko prepnes ktory layer ma byt viditelny.
edit1: http://docs.unity3d.com/Manual/Layers.html
tie layery si potom mozes vypinat zapinat na tom co vidi kamera aj pocas hry..pripadne mozes rovno vypinat zapinat druhu kameru _________________ http://www.touchgames.eu/
http://playito.com
TW: @Despo100
Space Merchants Online ...zruseny, pracujem na mobilnej verzii space merchantu |
|
Návrat nahoru |
|
|
McMagic
Založen: 06. 08. 2012 Příspěvky: 615
|
Zaslal: 7. červenec 2014, 07:59:53 Předmět: |
|
|
Je třeba se na scénu dívat jako na "Level".
Nahrát inventář jako další level už samo o sobě zní dost blbě, jen když se na to pomyslí
Inventář je v podstatě jen script(komponent), který je součástí gameobjektu (na scéně nebo prefabu - ať už přidaného napevno, nebo přes script).
Takže když si před sebe položíš nějaký easy koncept - například dejme tomu, Mario skákačku - kde bude navíc inventář na hvězdičky:)
Jako start scénu si uděláš "START" scénu, kde máš nějaké menu atd.
Po kliku na start btn uděláš load scény "JADRO" - případně asynch pokud potřebuješ držet data ze "START scény".
Na scéně "JADRO" budeš mít gameobjekty se scripty na inventář, score apod. + logicky loading scripty na scény atd.
Do teto scény nahraješ asynch scénu "LEVEL1" po dojití nakonec odstraníš scénu "LEVEL1" a nahraješ si "LEVEL2" atd.
Tím že si do scény "JÁDRO" nahráváš asnych potřebné levely - máš pořád dostupný inventář, score apod.
V zásadě je to easy a výše popsané je i blbost (hodí se jak pro co, pokud pracuješ online a držíš si data v DB tak se to řeší zase trošku jinak...). 100% používat tagy a vrstvy - pak se lépe pracuje s kamerami, fyzikou atd. atd.
Pro možná ještě lepší pochopení je možné si představit že máš jako hlavní scénu ostrov, a jako asynch si nahraješ dungeon do kterého hráč vstoupí a pak když vyleze tak dungeon zlikviduješ z hlavní scény. Atd.
Prostě scéna je LEVEL, inventář je SCRIPT/KOMPONENT
(Asynch load je pokud se nepletu, ale pouze pro PRO UNITY).
Pokud chceš za každou cenu na scénu "nahrát" inventář, tak to je lepší nahrát pouze prefab se scripty na inventář, nebo pouze pomocí scriptu daný script na inventář aplikovat. Vždy to je hlavně o tom co s tím potřebuješ dělat a jak. _________________
http://www.mcmagic-productions.com/ |
|
Návrat nahoru |
|
|
|