2016-04-14 27 views
2

Karakterin herhangi bir düz yüzeye kilitlenebileceği ve üzerinde yürüdüğü bir ilk oyun üzerinde çalışıyorum (bir tür ay botu gibi). Kamerayla ilgili sorunlar yaşıyorum çünkü çoğu fare görüntülemesi yapabildiğim için, bulmacanın dünyaya doğrudan ve aşağı doğru yönlendirilmiş olmasına bağlı olarak, "saygısız" animasyonum (yeni yüzeye yönelen oyuncu)) bittiğinde, kamera dünya tarafından tanımlandığı gibi anında yukarı ve aşağı geri dönecektir. İhtiyacım olan şey, farenin görünümünü gerçekleştirmenin bir yolu, böylece animasyonumdan sonra dönüşü sıfırlamaması. standart bir yöntem kaçınırken benim fare rotasyonlar bakmak gerçekleştirmek içinUnity Mouselook herhangi bir Oyuncu Oryantasyonundan

transform.Rotate(-Input.getAxis("Mouse Y") turnSpeed Time.deltaTime, Input.getAxis("Mouse X") turnSpeed Time.deltaTime, 0); 

amacıyla, ancak yatay kamera açarken bazı garip rotasyonlar olsun beri bu açıkça yanlıştır: Şu anda kullanıyorum. Fare görünümünü uygulamak için, oynatıcının yönüne bakılmaksızın düzgün çalışacak şekilde daha iyi bir yol var mı?

cevap

0

Sen oyuncu Transform içindeki kamerayı plance ve oyuncuya bu komut dosyasını ekleyebilirsiniz:

public class MouseLook : MonoBehaviour { 

    [SerializeField] 
    Camera Camera; 

    [Range(10f,50f)] 
    public float Speed = 30; 

    void Update() { 
     transform.rotation = Quaternion.AngleAxis(Input.GetAxis("Mouse X") * speed * Time.deltaTime, transform.rotation * Vector3.up)*transform.rotation; 
     Camera.transform.rotation = Quaternion.AngleAxis(-Input.GetAxis("Mouse Y") * Speed * Time.deltaTime, Camera.transform.rotation * Vector3.right)* Camera.transform.rotation; 
    } 
} 

Sen müfettiş Kamera başvurusunu ekleyin. Geri dönüşü önlemek için kameranın +/- 90 derecenin üzerine çıkmamasını kontrol etmeniz gerekecektir. Bununla ilgili bir sorunun olması durumunda size yardımcı olacağım.