.[ ČeskéHry.cz ].
Zmena farby Unity 5
Jdi na stránku Předchozí  1, 2
 
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
Radis



Založen: 29. 03. 2014
Příspěvky: 235

PříspěvekZaslal: 16. listopad 2015, 15:07:39    Předmět: Odpovědět s citátem

Mem: Posouvat se to bude, ]semo[ prece lerpuje v kazdem framu z nove pocatecni hodnoty Wink Ale ma to sve nevyhody, o kterych ]semo[ psal. (Plus nizsi pochopitelnost kodu, ze Meme? Smile)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mem



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

PříspěvekZaslal: 16. listopad 2015, 15:16:05    Předmět: Odpovědět s citátem

Měl bych zajít na oční no Very Happy Sem-tam se musím i omluvit! Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 16. listopad 2015, 18:16:44    Předmět: Odpovědět s citátem

Radis napsal:
Tohle mi pripada jako lepsi pristup, zapis je IMHO prirozenejsi a nema ty dve nevyhody, co ]semo[ zminil (tzn. takto hodnota opravdu dojde k vysledku a hlavne tam dojde bez zpomalovani, linearne):

kód:

var timeSinceStart = Time.time - startTime;
var t = timeSinceStart / duration;
material.color = Color.Lerp(Color.red, Color.green, t);

Já jsem zvyklý používat counter a zvyšovat pomocí delta času framu, to mi přijde jako lepší řešení
plus pokud je v Unity ten čas jako float a poběží to týden v kuse.... (604800.0f + 1.0f/60.0f = 604800.0f)
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Radis



Založen: 29. 03. 2014
Příspěvky: 235

PříspěvekZaslal: 16. listopad 2015, 22:34:46    Předmět: Odpovědět s citátem

No tak myslim, ze se da s klidem predpokladat, ze interne je snad Time.time double, ne? Ja bych developery z Unity zase tak nepodcenoval Smile
A myslim, ze nema cenu timto upirovi102 vubec plest hlavu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mar



Založen: 16. 06. 2012
Příspěvky: 602

PříspěvekZaslal: 16. listopad 2015, 23:08:13    Předmět: Odpovědět s citátem

Radis napsal:
No tak myslim, ze se da s klidem predpokladat, ze interne je snad Time.time double, ne? Ja bych developery z Unity zase tak nepodcenoval Smile

Ano, máš pravdu, interně to je double (http://forum.unity3d.com/threads/time-class-floating-point-accuracy.123344/),
nicméně ten prototyp vrací float, takže při dlouhém běhu se nezastaví, nicméně se časem začne kvantizovat.
Otázka je, kdo bude mít hru reálně puštěnou dýl, jak několik hodin,
každopádně pokud použije delta čítač, tak tento problém nenastane nikdy.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Radis



Založen: 29. 03. 2014
Příspěvky: 235

PříspěvekZaslal: 16. listopad 2015, 23:37:41    Předmět: Odpovědět s citátem

Snazime se tady jenom poradit zacatecnikovi ohledne lerpu z jedne barvy do druhe, to prece neni zadna veda. Zbytecne bych to nekomplikoval Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
upir102



Založen: 21. 09. 2015
Příspěvky: 9

PříspěvekZaslal: 10. prosinec 2015, 10:13:57    Předmět: Odpovědět s citátem

Pokúšam sa to podľa vašich rád spraviť ale nejde mi to stále ... môže byť problém v tom, že tá funckia je v podmienke If ? Skúšal som viacero vecí ale stále to reaguje takisto .
Tu je môj script terajší bez tých úprav , mám tam teraz Tim.time ale aj keď ju zmením na tekéto niečo , stále tá farba sa mení rýchlo bez pomalého prechodu

var timeSinceStart = Time.time - startTime;
var t = timeSinceStart / duration;
material.color = Color.Lerp(Color.red, Color.green, t);




#pragma strict
var ray : Ray;
var hit : RaycastHit;
var model : GameObject;
var menu : GameObject;
var kocka : GameObject;
function Update ()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, hit) && hit.collider.gameObject.tag == "lebka" )
{

model.GetComponent.<Renderer>().material.color = Color.Lerp(Color.black, Color.green, Time.time);
if(Input.GetMouseButtonDown(0) )
{ kocka.GetComponent.<BoxCollider>().enabled=true;
model.GetComponent.<MeshCollider>().enabled=false;
kocka.GetComponent.<Animation>().Play("lebka1");
menu.GetComponent.<Animation>().Play("1");
}
}
else {
model.GetComponent.<Renderer>().material.color = Color.Lerp(Color.white, Color.white, Time.time);

} }
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
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
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