なるほど、この書き方はエラーが出るわけではないので、うっかりやってしまうかもしれないですね。
transform.position.x = -1;
といった書き方ができないことはご存じかもしれませんが、試しに同じくHingeJoint.axis.x = -1;
などと書いてみますと、やはりerror CS1612: Cannot modify the return value of 'Joint.axis' because it is not a variable
といったエラーメッセージが出るかと思います。
Vector3
は参照型ではなく値型で、さらにaxis
はフィールドではなくプロパティですので、HingeJoint.axis
から取得したVector3
は元の値のコピーということになるでしょう。ですので、そのコピーをSet
で書き換えてもジョイントの軸に影響は及ばなかったものと考えられます。
ちょっと煩雑に感じられるかもしれませんが、
C#
1[SerializeField] HingeJoint HingeJoint;
2
3 void Start()
4 {
5 HingeJoint.axis = new Vector3(-1, 0, 0);
6 }
ならばどうでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/23 03:34