すっごい雑に切り抜いて、背景も頑張ってキャプチャから、フォトショで自由変形して作りました。
構造としてはこんな感じになっています。
なぜ一面ごとに親子関係を作っているかというと、開くときに回転の中心を底面にするためです。そのままだと、面の中心を回転軸としてしまいます。
空のオブジェクトを、面の下の部分に置いて、面をその空のオブジェクトの子オブジェクトにしています。
また、表と裏を別の模様にするために、二つ薄いキューブを並べています。
開く動作はitweenを使いました。
if(Input.GetKeyDown(KeyCode.Space)){
if (a == 0) {
iTween.RotateTo (front, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
iTween.RotateTo (right, iTween.Hash ("x", 0, "islocal", true, "time", 3.0f));
iTween.RotateTo (left, iTween.Hash ("x", -179, "islocal", true, "time", 3.0f));
iTween.RotateTo (back, iTween.Hash ("x", 0, "islocal", true, "time", 3.0f));
a += 1;
} else {
iTween.RotateTo (front, iTween.Hash ("x", 0, "islocal", true, "time", 3.0f));
iTween.RotateTo (right, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
iTween.RotateTo (left, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
iTween.RotateTo (back, iTween.Hash ("x", 90, "islocal", true, "time", 3.0f));
a -= 1;
}
itween便利ですね。
そういえば任意のマーカーも使えました。写ってないけど。
こっちの記事を書き直しました↓
困っている点
ティッシュのトップの面を奥の面の子オブジェクトにして、回転させようとすると、
なんか変な感じになってしまう。ひし形?平行四辺形?みたいな変形をする。ただ回転して欲しいだけなのに。
理想はこんな感じ。
なので、上の部分を閉めることができません。ど〜しよう!
追記:teratailで質問したら解決しました。親オブジェクトの大きさは1.1.1.じゃないと、その大きさの影響を子が受けるからだそうです!
https://teratail.com/questions/97467
質問の回答に対する返事で、私が少し勘違いしていましたが、親を空のオブジェクトにすることで私のやりたいことは解決していました。
この階層の場合は青いbackが空のオブジェクトなのですが、これの大きさを1.1.1.にしたら解決しました。そのままやったらこのオブジェクトも1.1.1になってしまうので、一旦別で空を作ってから子を差し込む。
無事閉まりました!
もう一つ、itweenも意図しない方向に回転する。右に開いて欲しいのに左に回転する。
回転はわからない><