.[ ČeskéHry.cz ].
Unity - scény

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 5. červenec 2014, 20:50:35    Předmět: Unity - scény Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Dlaha



Založen: 30. 07. 2007
Příspěvky: 598
Bydliště: Olomouc

PříspěvekZaslal: 5. červenec 2014, 22:25:32    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
impresionista



Založen: 06. 07. 2014
Příspěvky: 17
Bydliště: Brno

PříspěvekZaslal: 6. červenec 2014, 01:53:29    Předmět: Odpovědět s citátem

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
Smile

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Houp



Založen: 28. 07. 2007
Příspěvky: 672

PříspěvekZaslal: 6. červenec 2014, 07:29:02    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 6. červenec 2014, 08:13:07    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
DespeRadoX



Založen: 28. 07. 2007
Příspěvky: 520

PříspěvekZaslal: 6. červenec 2014, 09:22:14    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
McMagic



Založen: 06. 08. 2012
Příspěvky: 615

PříspěvekZaslal: 7. červenec 2014, 07:59:53    Předmět: Odpovědět s citátem

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íSmile

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> 3D API / 3D Enginy Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna