2016-11-07 4 views
0

1つの軸をロックしたままにするのに問題があります。私はオブジェクトのようなこのモックアップ針をつかむために使うことができる2つのツールを持っています。1つの軸の回転を保持し、他の軸を親に揃える

Tool grabbing "needle"

私はちょうど自分自身の周り(ローカルy)をその回転を維持し、ツールの回転と休息を揃えることができるようにする必要があります。現在、しかし、私はそうのようなすべての軸を回転させる方法を見つけ出すことができます。

Tool having grabbed "needle"

コードは単に次のようになります。私が試してみました

case 1: 
this.transform.rotation = leftParent.transform.rotation; 
this.transform.SetParent (leftParent); 
break; 
case 2: 
this.transform.rotation = rightParent.transform.rotation; 
this.transform.SetParent (rightParent); 
break; 

何:

  • 。ローカル回転とグローバル回転の両方で設定し、yおよび/またはW回転を維持する
  • =新しいQuaternionをローカルとしてD地球の回転、Yおよび/または私が見逃している明白な何かがあります場合、それは

私に知らせてください子育て後に針を回転させる親回転

  • に一致した後、針を回転ワット
  • を維持します。ありがとう!

  • 答えて

    0

    私は、あなたが探していることはTransform.localRotationまたはTranform.localEulerAnglesだと思う:あなたはそれらのhereについての詳細を見つけることができます。私はこのような何かをやる、あなたの場合は

    (あなたの「手」オブジェクトジオメトリが期待されているよう考慮して):ところで

    case1 : 
    //Adjust the rotation you want to keep here (I assume on Y axis in your case) 
    transform.SetParent(leftParent); 
    transform.localEulerAngles = new Vector3(0.0f, transform.localEulerAngles.y, 0.0f); 
    break; 
    case2 : 
    //Adjust the rotation you want to keep here (I assume on Y axis in your case) 
    transform.SetParent(rightParent); 
    transform.localEulerAngles = new Vector3(0.0f, transform.localEulerAngles.y, 0.0f); 
    break; 
    

    thisキーワードを単独でtransformので、あなたの状況では必要ありませんスクリプトが添付されたの変換を指します。