2016-11-16 7 views
1

私はボトルをスピンしようとしています(私はマウスの最初のposとendの位置を計算しています)、 'スワイプ'の長さ/時間に従ってそれに力を加えます。最初のスワイプの後、ビンはスワイプの力に基づいて回転し続け、数秒後に停止する必要があります。ボトルを回転Unity3D

ここで私を助けてくれることを願っています。ありがとう!

bottle interface

これは私がしようとしたものですが、それはうまく動作しません:

public Rigidbody bottle; 
bool isSwiping; 
Touch thisTouch; 
Vector2 origPos; 
Vector2 endPos; 
float touchSpeed; 
Vector3 Torque; 
float timeStart; float timeEnd; 


void OnMouseDown() 
{ 
    timeStart = Time.time; 
    origPos = Input.mousePosition; 
} 

void OnMouseDrag() 
{ 


    isSwiping = true; 


} 

void OnMouseUp() 
{ 
    if (isSwiping) 
    { 
     timeEnd = Time.time; 
     endPos = Input.mousePosition; 
     Vector2 deltaPosition = endPos - origPos; 
     touchSpeed = deltaPosition.magnitude/(timeEnd-timeStart); 
     Torque = new Vector3(touchSpeed * 500f, 0, 0); 
    } 
} 



void Update() 
{ 

} 


void FixedUpdate() 
{ 
    if (isSwiping) bottle.AddRelativeTorque(Torque); 
} 
+0

あなたが「doesnのものに手の込んだことができますこの場合、「うまく働く」という意味ですか?必要に応じて追加情報と視覚資料を使用して質問を編集してください。 – Serlite

+0

スワイプしてみてください。スピードの変化を検出するためにInput.GetAxis( "Horizo​​nal")を使用します.YのY座標のマウスとInput.GetAxis( "Vertical")? –

+0

@Serlite私はそれが回転していないことを意味し、何もしません。 –

答えて

2

は、このコードを使用してみてください。

public Rigidbody bottle; 
bool isSwiping; 
Touch thisTouch; 
Vector2 origPos; 
Vector2 endPos; 
float touchSpeed; 
Vector3 Torque; 
float timeStart; float timeEnd; 


void OnMouseDown() 
{ 
    timeStart = Time.time; 
    origPos = Input.mousePosition; 
} 

void OnMouseUp() 
{ 
    timeEnd = Time.time; 
    endPos = Input.mousePosition; 
    Vector2 deltaPosition = endPos - origPos; 
    touchSpeed = deltaPosition.magnitude/(timeEnd-timeStart); 
    Torque = new Vector3(touchSpeed * 500f, 0, 0); 
    isSwiping = true; 
} 

void FixedUpdate() 
{ 
    if (isSwiping) bottle.AddRelativeTorque(Torque); 
} 
+0

素晴らしい!できます!私は答えを受け入れる前に一つのこと、 ボトルは止まることなく回転し続けます。どのように時間をかけてスピードを下げることができますか? 私はボトルを回転させるとき、それはある時間回転する必要があります私のスワイプに依存します。出来ますか? –

+0

はいセットはisSwiping = falseであり、動作します –

+0

はい私はこれを行いました。それは時間の経過とともに回転速度を下げることなく直接停止します。 –

関連する問題