2016-04-08 32 views
0

Unity geliştiricileri için temel bir soru olabileceğini biliyorum. Ama bu sorunun cevabını bulmakta zorlanıyorum. Oyun ekranımdaki tüm nesneleri cihaz hızlandırmaya göre taşımak istiyorum. Ben sadece 2 ihtimal çözümleri düşünüyorum:Unity 2D mobil Oyun: Dünya yerçekimi nasıl yapılır cihaz eğimini takip edin

1: Tüm dünya yerçekimi değiştirmek

2 cihaz eğimine göre: Ben hız ama değiştirmeyi denedim (tüm nesneler için güçlerini uygulamak veya tüm nesnelerin hızını değiştirmek oyun gecikmeli var)

2B oyun nesnelerini cihaz eğimine göre kolayca hareket ettirmenin iyi bir yolu var mı?

cevap

0

Bunu, Physics2D.gravity değiştirerek yapabilirsiniz. Sahnede tüm GameObjects yerçekimi değiştirecektir.

Physics2D.gravity = Input.acceleration * 50; çalışabilirdi, ancak Input.acceleration düşük, orta ve yüksek değerlere sahip olduğundan çalışmaz. Yani Input.acceleration doğrudan Physics2D.gravity'a atayamazsınız.

Daha sonra o zaman 2D değeri Physics2D.gravity atamak elde etmek için if deyimi ve geçici Vector2 değerini kullanabilir her eksenin, düşük, orta ve yüksek değerleri görüntülemek için Debug.Log(Input.acceleration) kullanmak size cihazda açmanız gerekir.

Ayrıca herhangi GameObject için size ivme az veya de-tüm, o GameObject ait RigidBody Gravityscale değiştirebilir değil, daha etkiler istiyorum.

+0

ben cihazı açın ve ben Input.acceleration değerleri kullandığım cihaz bağlı olmadığını varsayabiliriz debug.log kullanıyorsanız? Bu değerler herhangi bir Android cihaz için geçerli olabilir mi? –

+0

Tüm Android ve iOS cihazlarda aynıdır. Daha önce yoktu ama Birlik bunu 2012'de düzeltti. Böylece aldığınız ve kestiğiniz herhangi bir değer diğer mobil cihazlar için işe yarayacak. – Programmer

0

Sahnedeki tüm rijit cisimlere uygulanan yerçekimi Physics2D.gravity ayarlanarak değiştirilebilir.

Not: rigidbody.useGravity = true'u da ayarladığınızdan emin olun (yerçekimi nesnelerin etkilenmesi için).

Örnek: Physics2D.gravity = new Vector2 (x, y);

Physics.gravity Unity API

Input-acceleration Unity API