私は現在、ユニティを使用して 3D でテニス ゲームに取り組んでいます。ユーザーが x=0、y=5、z=0 で特定の位置 (z=10 など) の速度でボールを打つと、z=10 に到達した後のボールの x 座標と y 座標は何ですか?
2 に答える
            0        
        
		
Heilo のアプローチは完全に機能しますが、Update() メソッドの Update 中のフレームである、距離/時間などの直接的な速度測定値を取得するという考えを強調します。
これは実際には非常に簡単です...
次のように、2 つの更新関数間で移動した距離を取得するだけです。
var previousPosition : Vector3;
function Update() {
    //Get the difference/distance between the previous position and the current position
    var velocity = Vector3.Distance(previousPosition, transform.position);
}
単一フレームでこれを行っているため、速度を取得するために余分な計算を行う必要はありません。ただし、1 秒以上実行したい場合は、ゲームの FPS を取得し、それを使って計算する必要があります。したがって、この直接ルートを使用したくない場合は、Heilo の提案を使用することをお勧めします。
于 2012-12-11T01:16:31.973   に答える
    
    
            0        
        
		
ボールの速度を取得するには、ボールの RigidBody を使用する必要があります。
スクリプトがボールのコンポーネントとしてアタッチされている場合は、 からアクセスしますrigidbody.velocity.magnitude。
于 2012-12-07T13:57:17.187   に答える