/Belt-Conveyor-System

System of Belt-Conveyor with Unity / Rigidbodyを用いたベルトコンベヤーの物理的なシミュレーション

Primary LanguageC#

Belt-Conveyor-System

> Made with Unity-version:2019.4.20f(LTS)

unityでのinspectorの操作について

[注意1]Scene上で複製する際、TransformのRotateを変えても、上に置かれたものの動く方向は変わりません。

  • 例えばBeltconveyorを4つに複製して、四角状に配置した場合(Picture1)
    • そのまま特に設定せずにプレイすると、上の青いCubeは異なるBeltConveyorに乗り移っても同じ方向に移動を続けてしまいます。(Gif1)

Picture1

このように四角状に配置します

Gif1

このように変な挙動をします_2gif

  • これは上側のBeltConveyorが、乗る物体の動く方向をスクリプトで決めていて、ワールド座標のZ軸に対してどの向き(前後左右(forward,back,left,right))に動かすかを指定しているため、角度をずらすとワールド座標上のZ軸の方向とBeltConveyorの見た目上の前方向がずれる(ローカル座標上のZ軸の向きが変わる)ことにより生じるものです。
  • → 対処法として、初めに、それぞれのHierarchy内のBeltConveyorの中に含まれるOnbeltオブジェクト(上の物体が載るところのオブジェクト)を選択します。(Picture2) 次にinspectorにてアタッチされているBeltConveyorSimpleコンポーネントのChosen Vecパラメータを選択し、表示された向きの選択肢を、そのBeltConveyorの上にある物体が運ばれる方向の、ワールド座標Z軸から見た向きに合わせた選択肢にします。(Picture3)

Picture2

このOnBeltをせんたくします

Picture3

ここをいじってx軸に対してどうかを指定します

今回のような四角状に配置した場合、真上から全体を見るとPicture4のようになります。 右上にある軸を見て分かる通り、Z軸は写真上の上側です。よって1BeltConveyorChosenVecをZ軸に対して正の向きに動かしたいのでforwardを選択します。 同様にして2BeltConveyorChosenVecはZ軸に対して右側に動かしたいのでrightを選択し、3のはZ軸に対して負の向きに動かしたいのでbackを、4のはZ軸に対して左側に動かしたいのでleftを選択します。(Picture5)

  • 以上の設定を行うとGif2のような正しい挙動になります。

Picture4

この場合の上から見た向き

Picture5

1sen

Gif2

Vec指定後

[注意2]Scene内での下側のBeltConveyorのObject(GameObject名:UnderBelt)は_「^(緑の矢印)」マークが逆になるため、ConveyorSimple.csのReverseパラメータにチェックを入れてください

  • 入れなくてもエラーが起こる訳ではありませんが、見た目が変になります。施す前と後で比較します:

Before (Picture6)in PlayMode,Gif3

  • Reverse Reverse入れないとインプレイ Reverseなしgif

After (Picture7)in PlayMode,Gif4

  • Reverse Reverseありだとインプレイ Reverseありgif

取り込み上の注意

ZIP形式でDLした後、Unityに取り込んだ際に多少のエラーが出てくる場合があるかもしれません。(Picture8) 正常通り再生できるのであれば問題いりませんが、万が一再生を阻止されエラーの修正を促されたり、明らかなバグ(画像情報がないなど)があれば、 GitHub Desktop を開いてFile-> Clone repository を選択し、このrepositoryCloneして取り込んでください。

Picture8

こんなエラーが発生することがあります_LI