2013-04-22 101 views
2

我想模擬拋射體運動。我用下面的代碼Unity3D中的子彈旋轉

if (Input.GetButtonDown("Fire1")) { 
     Rigidbody clone; 
     clone = Instantiate(projectile, transform.position+ new Vector3(0f,0f,2f), transform.rotation) as Rigidbody; 
     clone.velocity = transform.TransformDirection(Vector3.forward * Speed); 
    } 

我彈是一個剛體,我希望它像當我的彈丸即將與地面應該面對地面而不是它的發射器的旋轉碰撞實射來設定其方向。它應該根據速度改變它的旋轉。我不知道該怎麼做?

+0

現在它正在工作:)這行代碼transform.LookAt(transform.position + rigidbody.velocity);解決了我的問題 – 2013-04-22 13:59:12

+5

你應該用上面的信息回答你自己的問題,而不是評論。它可以通過這樣做來幫助其他人。 – Joetjah 2013-04-22 14:02:09

回答

0

現在它正在工作:)這行代碼transform.LookAt(transform.position + rigidbody.velocity);解決了我的問題

1

正如你在評論中說的那樣,只需將transform.LookAt(transform.position + rigidbody.velocity);納入彈射控制器更新。還要確保在剛體設置中標記「鎖定旋轉」,否則物理系統會嘗試自己旋轉剛體,並可能導致抖動,不切實際的行爲。