Top/Devel/Unity/2点指定でCylinderを生成する

2点指定でCylinderを生成する の変更点はてなブックマーク


Unityは円柱(Cylinder)のプリミティブをデフォルトで持っており、~
メニューやコードから生成することができるが、~
通常、円柱の2つの端点を指定して生成することはできない。

~

これをできるようにしたのが下記のUnityパッケージ。

#ref(cylinder_between_two_points.unitypackage)

~

#youtube(4VPFo4C8uYo)

~

コードはこんな感じ。

#code(csharp,nonumber,nooutline,CylinderBetweenTwoPoints.cs)

~

ただし、上記コードに与える円柱プレハブは、通常のプリミティブの円柱ではNG。

というのも、円柱の方向が求めている方向と異なるため。

~

これについては、プリミティブを作成し求める方向に回転させた後、~
下記のようにしてメッシュをアセットとして保存すれば、解消する。
#code(,nonumber,nooutline){{
AssetDatabase.CreateAsset(mesh, path);
AssetDatabase.SaveAssets();
}}


~

なお、 今回は簡単のために、[[テラシュールブログさんのMeshCombiner.cs>http://tsubakit1.hateblo.jp/entry/2014/10/24/220610]]を使用した。

~

アセットとして保存するプリミティブをカプセル(Capsule)にすれば、カプセルも2点指定で生成することができる。

*利用例

#twitter(https://twitter.com/cubic9com/status/857240178229825536)

*参考
-[[Draw Cylinder Between 2 Points | Unity Community - Unity Forums>https://forum.unity3d.com/threads/draw-cylinder-between-2-points.23510/]]
-[[Create cylinder primitive between 2 endpoints? - Unity Answers>http://answers.unity3d.com/questions/21174/create-cylinder-primitive-between-2-endpoints.html]]

*Amazon
#amazon(4798137464,left)
#amazon(B01H4ONR86,left)
#amazon(B0058QFZYC,left)
#amazon(4091848184,left)
差分 一覧