2016-06-29 10 views
0

私はc#(monodevelop)とunity3dを使ってソフトウェアを開発しています。 3Dモデルをcollada daeファイルとしてインポートしています。私が書いたスクリプトでは、daeファイルのジオメトリオブジェクトを考慮する必要があります。私はいくつかのコードを書いていますが、私はコード化することに新しいので、C#を使ってdaeファイル内の幾何学的オブジェクトにどうやってアクセスできるのか分かりません。どんな助けでも大変役に立ちます。Unity3dのc#スクリプトを使用して3dモデルにアクセス

答えて

0

あなたはコーディングに新しいと言いましたので、私はUnityの基本から始めます。

daeファイルをプロジェクトタブからシーンにドラッグアンドドロップすると、階層内にdaeファイルと同じ名前のGameObjectが表示されます。そのGameObjectは、すべての内部オブジェクト(すべてGameObjectsでもあります)でWindowsエクスプローラのように展開できます。

C#の階層の任意のGameObjectにアクセスするには、次のようにします。GameObject.Find( "desired-gameobject-name");

その名前が一意でない場合にも、あなたのゲームオブジェクトのパスを指定することができます。 GameObject.Find(「GameObject1/GameObject2の/ etc」);

ほとんどの場合、ゲームオブジェクトで何かしたいときは、コンポーネントを処理する必要があります。それは非常にシンプルなUnityコンセプトです。 GameObjectはそれらに関連付けられたコンポーネントを持つかもしれません。インスペクタタブには、選択したゲームオブジェクトで使用されるすべてのコンポーネントが表示されます。

あなたの家のモデルからドアが見えないようにしたいとしましょう。次のようなものを使用できます。 GameObject.Find( "HouseModel/Door")。GetComponent <レンダラー>().enabled = false;今

、あなたが頂点データを取得するような、よりハードコアな何かをしたい場合は、MeshFilterコンポーネントを使用します。 のVector3 []頂点= GameObject.Find( "/ドアHouseModel")GetComponent <MeshFilter>().meshを。頂点。 このドアからすべての頂点の配列を返します。

私はそれがあなたにある方向を与えることを願っています。

+1

こんにちは@glauberですが、これはすばらしい答えですが、最も基本的なチュートリアルを探しているだけの**質問には答えるのが最善です。それはこのサイトで信じられないほどの混乱を作り出します。私はいつもOPに丁寧なメモを残すだけです。 "基本的な統一チュートリアルはここにあります..."。 (ユニティは優れたチュートリアルを書いてもビデオでも提供します)、もちろんクリックして質問を閉じることができます。 – Fattie

+0

お返事ありがとうございました – user51044

関連する問題