Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
sacmoo
Založen: 18. 11. 2014 Příspěvky: 69
|
Zaslal: 1. březen 2016, 22:23:39 Předmět: Unity 5 problem s fyzikou |
|
|
Snazim sa spravit efekt slow motion pri strielani a Time.timeScale = 0.1 a Time.fixedDeltaTime = 0.02f * 0.1
Ked vystrelim a nasledne spustim slow motion, tak projektil leti spomalene do dialky, ale ked je spustene slow motion a vystrelim, tak projektil ledva vystreli z hlavne a hned padne na zem. Vie niekto v com by mohol byt problem? |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 2. březen 2016, 09:45:00 Předmět: |
|
|
Co znamená "vystřelí"? Působíš na projektil silou? Pokud ano, bude to možná ten problém, protože při takovémto způsobu výstřelu se používá i čas - čas po který ta síla působí. To by samo o sobě nevadilo, ale pokud to máš udělané tak, že tu sílu používáš fixně třeba 1 nebo více framů, tak zkrátka přijdeš o nějakou tu energii. Na výstřel je nejlepší rovnou nastavit projektilu rychlost.
Snad jsem se trefil :-) _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
sacmoo
Založen: 18. 11. 2014 Příspěvky: 69
|
Zaslal: 2. březen 2016, 19:08:30 Předmět: |
|
|
Rychlost som si praveze definoval. Takto vyzera:
kód: |
public class ShooterScript : MonoBehaviour
{
public Rigidbody projectile;
public float fireRate = 0.7f;
public float projectileForce = 6000.0f;
private float nFire = 0.0f;
private void Start()
{
Cursor.visible = false;
}
private void Update()
{
if (Input.GetButton("Fire1") && Time.time > nFire)
{
nFire = Time.time + fireRate;
Rigidbody clone = (Rigidbody) Instantiate(projectile,Camera.main.transform.position,Camera.main.transform.rotation);
clone.AddForce(clone.transform.forward * projectileForce);
}
}
}
|
|
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 2. březen 2016, 21:27:45 Předmět: |
|
|
To je přesně to, co sem psal. Používáš sílu, ale ta působí jen jeden frame a jeho čas ještě měníš slow motion efektem. Síla by byla dobrá tak pro nějaký ohromný samostříl nebo katapult. Ale musela by působit nějaký delší čas (třeba vteřinu) a ve fixedUpdate. Když máš ale lauf třeba metr dlouhý a rychlost projektilu třeba 100 m/s (dost pomalý), tak projektil stejně zrychlí od nábojnice ke konci laufu tak za jeden frame. Možná i dřív. Je proto špatné trápit se se zrychlením (je úměrné síle). Je to něco jako bys v autě dupl na plyn třeba na 0.02 sekundy. Raději rovnou nastav rychlost přes http://docs.unity3d.com/ScriptReference/Rigidbody-velocity.html. A navzdory dokumentaci to bude realistický až až :-). _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 2. březen 2016, 21:33:36 Předmět: |
|
|
... pokud se chceš držet sil, poděl tu sílu time scalem. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
sacmoo
Založen: 18. 11. 2014 Příspěvky: 69
|
Zaslal: 3. březen 2016, 21:21:19 Předmět: |
|
|
A mozes mi to napisat ako by to vyzeralo v kode? Lebo skusal som tam dat namiesto Update FixedUpdate a dal som tam clone.velocity, ale robi to este vacsie blbosti.
Ked som dal vo FixedUpdate
clone.velocity = clone.transform.forward * projectileForce * Time.fixedDeltaTime; tak sa nic nezmenilo. |
|
Návrat nahoru |
|
|
]semo[
Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 4. březen 2016, 11:14:43 Předmět: |
|
|
clone.velocity = clone.transform.forward * projectileSpeed;
Bez síly, bez času. Prostě jen rychlost v metrech za sekundu. A nemusí to bejt ani v update, klidně někde v inputu, nebo jako událost. Prostě jen jednou jedinkrát nastavíš rychlost a projektil letí. Odporem se pak už jen zpomaluje. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
|
sacmoo
Založen: 18. 11. 2014 Příspěvky: 69
|
Zaslal: 7. březen 2016, 16:07:00 Předmět: |
|
|
Uz to funguje. Diky moc. |
|
Návrat nahoru |
|
|
|