2017-02-21 8 views
2

私は、小さな惑星上に置かれたいくつかのプレハブを使ってシーンを構築しようとしています。だと、something like thisだと思います。私が直面している問題は、コントロール+シフトを使用して簡単に球にプレハブを置くことができますが、回転させずにひどい回転に現れることです。私は彼らが垂直に配置されることを目指しています。シーン内のオブジェクトの位置にそれらを回転させ、手動で、シフト+コントロールを使用してプレハブを表面に垂直にスナップすることは可能ですか?

  1. 場所:

    現在、私は3つのソリューションの認識しています。

  2. 前のようなシーン内のオブジェクトが、その後、その更新方法のそれぞれにコードのスニペットを追加場所:transform.rotation = Quaternion.FromToRotation(transform.up, transform.position - origin) * transform.rotation;
  3. オプション2のように、コードを実行し、シーンに世界の状態を保存するためにいくつかの方法を見つけるが、 that is easier said than done。些細でなければならない何かのために、多くの努力のように思えます。

最初は、退屈で正しく位置合わせが困難である第二は簡単ですが、最終的なゲームの典型的でないシーンビルダをレンダリングし、私はどこ三時に起動するようには考えています。より良い方法がありますか?

+0

私はVertex Snappingも試みましたが、プレハブを垂直にも向かわせていません。 –

+0

ここでは、(1)オブジェクトをサーフェスに対して垂直にどのように配置するのか、(2)編集者がこれを行って保存済みのシーンを作成するにはどうすればよいでしょうか。そうですか?質問1または2はあなたにさらに問題を与えていますか? – rutter

+2

[ExecuteInEditMode]ヘッダーをクラスに追加してみることもできます。これにより、更新コードが編集モードで実行されます。もう1つの方法はエディタスクリプトを作成することですが、これはもう少し作業です –

答えて

0

私は最後に、Control + Shiftを使用してすべての方向を手動で実行することに決めました。 Johanはあなた自身の[ExecuteInEditMode]編集スクリプトを書くことができると提案していました。私が森林を伐採していた惑星がかなり大きかったなら、私はそれを調べていました。

オブジェクトが浮遊していないことを確認し、表面を完全にクリップするようにスクリプティングパスを下っていくことに注意してください。結局のところ手動で配置する必要があるかもしれません。

関連する問題