なるほど、この書き方はエラーが出るわけではないので、うっかりやってしまうかもしれないですね。
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