Edited at

【Unity(C#)】オブジェクトをまとめて回転させるとMeshが変形した

  

  

  

この記事は

『プログラミング完全未経験からUnityでの開発現場に迎え入れてもらえた世界一の幸せ者』

の記事です。そのつもりでお読みください。


回転させる

Cubeをいろいろと回転させてみたいと思います。

キューブ配置.png


キューブの角度のみ回転

それぞれのCubeをInspectorでRotationをいじって回転させました。

このとき、それぞれのCubeのPositionは変わりません。

Rotation_45.png


親にCubeを詰め込んで親を回転

Hierarchyで空のゲームオブジェクトを作成して、Cubeの親に設定しました。

親のRotationをいじって回転させています。それぞれのCubeのPositionは変わっています。

ちなみに、この画像の親のPositionは緑のCubeと同じにしています。

Rotation_Self_45.png

親子の関係を作るときに、PositionやRotationを変更する場合には

気を付けなければならないことがあります。

親のPositionやRotationを基準に子のオブジェクトのLocalPositionが決まるので、

回転させたい軸の場所に親のオブジェクトを配置する必要があります。

例えば、白い円柱の周りを回転させたいのであれば、

白い円柱を親にして、白い円柱のRotationを変更すればいいということです。

Center_Rotation_45.png


Meshが変形した

なぜこんなどうでもいいことをまとめようかと思ったかというと、

いろいろいじってたらCubeの形が変形したので調べたら意外な理由だったからです。

mesh 変形_.png

画像のように、回転させると変形してしまいました。

どうやら、親のScaleを変更した状態((1,1,1)ではない状態)で、

子のRotationを変更すると、このようにMeshが変形してしまうようです。

なので、親のオブジェクトのスケールを変えたい&子のオブジェクトを回転させたい場合は

別の空のオブジェクトの子にするなどの工夫が必要かもしれません。


2019/06/04 追記

メッシュをぶっ壊してみた

書きました。

というか、この記事のまとめて回転させるとMeshが変形って再現性あるのか?

今日試したらできなかったんだが。誰が書いたんだこの記事いい加減にしろ(ブチ切れ)