はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】3Dのゲームオブジェクトの片方のみ伸縮させる

はじめに

2Dのゲームオブジェクト(RectTransform)にはpivotを自分でいじることが可能です。

f:id:hanaaaaaachiru:20190319170826p:plain
f:id:hanaaaaaachiru:20190319170909p:plain

f:id:hanaaaaaachiru:20190319170919p:plain
f:id:hanaaaaaachiru:20190319170927p:plain

ただ3Dのゲームオブジェクトでは画像みたくpivotをエディタ上でいじるのは無理みたいです。

Changing the pivot point of meshes. - Unity Answers

しかし少し工夫をすると疑似的に再現できるので、今回はその方法を紹介したいと思います!

仮PivotになるGameObjectを作成する

Scaleが(1,1,1)のGameObjectを作成し、親子関係を作ります。

f:id:hanaaaaaachiru:20190319172039p:plain

f:id:hanaaaaaachiru:20190319172123p:plain

仮Pivotが端になるように子オブジェクトの位置を調整する

仮Pivotが端になるように子オブジェクトの位置を調整することで最初の2Dオブジェクトのような振る舞いをすることができます。

f:id:hanaaaaaachiru:20190319172922p:plain
f:id:hanaaaaaachiru:20190319172936p:plain

f:id:hanaaaaaachiru:20190319173003p:plain
f:id:hanaaaaaachiru:20190319173036p:plain

さいごに

もう少し良い方法があるかもしれませんがとりあえずこれで実装できました。
もしこうやればpivotいじれるよ!などがありましたら是非コメント等で教えてくれると嬉しいです!