2016-04-07 42 views
0

Klasör olarak bir şehir 3d modelim var. Klasör .obj dosyasını, materyalleri ve dokuları içerir.3d model birliği düz renk dönüştürmek nasıl?

Yollarda yürürken sanal bir tur oluşturmaya çalışıyorum. Kamerayı bir caddeye yerleştiriyorum. Kameram yukarı ve aşağı tuşlarına basarak ileri ve geri gider. Sağa ve sol tuşlara basarak, trun ve sola döner. Tuşa basmayı başarılı bir şekilde halledebilirim.

Şehir modelinin yerden yüksekliği farklıdır. Bu resmin altında benziyor: enter image description here

kullanıcı basın yukarı veya aşağı tuşuna, ben güncelleme transfrom.Translate verileriyle sadece z değerini değiştirirseniz:

float translation = Input.GetAxis("Vertical") * speed; 
transform.Translate(0, 0, translation); 

Ama benim kamera siyah sınırının altında gider ve ben şehri düzgün göremiyor. Hattın (yolların) altına çıkmaktan nasıl kurtulabilirim? Katı cisim sorunumu çözüyor mu?

cevap

1

Yapabileceğiniz birkaç yaklaşım var. Yolunuza bir mesh collider eklemenizi ve ardından nesnenin konumundan aşağı doğru bir raycast yapmasını öneririm.

RaycastHit hit; 
float height = 1.0f; 
if(Physics.Raycast(transform.positon, -Vector3.up, out hit)) 
{ 
    transform.position = Vector3(transform.position.x, hit.point.y + height, transform.position.z); 
} 
+1

Böyle bir şeye benzeyecektim: bence rigbebody veya diğerlerini kullanarak otomatik bir çözüm var. – zumma

+0

Sadece bir şey eklemek için. Yol gerçekten sıra dışı bir ağ olmadığı sürece bir kutu çarpıştırıcısı ile gitmenizi tavsiye ederim. Kameraya sert bir katlayıcı ve çarpıştırıcı Addig de çalışmalıdır, sadece fizik malzemenin sürtünmesiz olduğundan emin olun, böylece cam çarpışmaları yavaşlatmaz. –

+1

Evet, bunu aynı zamanda katı bir cisim kullanarak da yapabilirsiniz, ama gameobject'i fizik sistemindeki kuvvetler aracılığıyla hareket ettirmediğiniz için (doğrudan pozisyonunuzu belirliyorsunuz) genellikle iyi bir fikir değildir. –

İlgili konular