我開始了一個新的游戲專案,我試圖找到一種方法,只使用一個rigidbody2D組件來移動我的玩家游戲物件,而不是使用transform.position. 而且我想不出一個好方法來做這件事,也找不到關于它的教程或檔案。
我已經得到了它的作業transform.position,但我怎么能這樣做呢rigidbody2D?
uj5u.com熱心網友回復:
對于 RigidBody2D 的運動,您有多個基于物理的選項。我認為這就是您首先要使用 RigidBody2D 的原因。
RigidBody2D obj = GetComponent();
private void moveBody()
{
//direction towards your goal
Vector2D v = mousePosition - transform.position;
//Example 1 set the velocity
obj.velocity = v;
//Example 2 apply force
obj.AddForce(v, ForceMode2D.Impulse);
}
您可以在此處閱讀有關 RigidBody2D 運動 的更多資訊
uj5u.com熱心網友回復:
你可以在你的舞臺上扔一個看不見的對撞機,然后用射線將你的物件移動到你想要的位置。
Ray ray;
public RaycastHit hit;
private void Update()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, 100f))
{
Debug.DrawRay(Camera.main.transform.position,hit.point);
transform.position = hit.point;
}
}
最好的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/521518.html
標籤:C#unity3d
上一篇:如何將特定物件重置為其原始旋轉?
