[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart2 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
123: 2020/10/30(金)07:09 ID:NZii0qOG(1/3) AAS
お話しの途中で済みません
お聞きしたいことがあります。

・やりたいこと

頂点ディスプレイスメント

・出来てること

ComputeShader

・問題

あるメッシュの頂点情報を取得して、それをバッファに格納して、コンピュートシェーダで計算して適当に移動させて
それを当のメッシュの頂点に再びセットする、といったとき、

meshFilter.SetVertices();

が毎フレーム必要になると思います。しかし、このメソッドの引数に、予め宣言していた構造体の位置情報を入れようとすると上手くいきません、
具体的には次のようなものです
124
(1): 2020/10/30(金)07:15 ID:NZii0qOG(2/3) AAS
public struct VerDis
{
public Vector3 pos;
public Vector3 velocity;

public VerDis(Vector3 pos, Vector3 velocity)
{
this.pos = pos;
this.velocity = velocity;
}
}

このようにスクリプトファイルの冒頭で宣言しておいて、メッシュの頂点情報を取得したうえで、

VerDis[] verdises = new VerDis[vertices.Length];

としこのverdisesに頂点情報をfor分で格納していくのですが、そのあとコンピュートシェーダで計算した情報を

meshFilter.SetVertices(verdises.pos);

とセットしようとすると「"'VerDis[]' に 'pos' の定義が含まれておらず、型 'VerDis[]' の最初の引数を受け付けるアクセス可能な拡張メソッド 'pos' が見つかりませんでした。」

とエラーが出てコンパイルできません。いやpos一番最初に定義してるじゃん!と思ってしまうのですが、これはなぜなのでしょうか。
127
(1): 2020/10/30(金)07:53 ID:NZii0qOG(3/3) AAS
定義じゃなく、宣言でした。しかし、

VerDis[] verdises = new VerDis[vertices.Length];

for(int i = 0; i < vertices.Length; i++)
{
verdises[i] =

new Vector3(vertices[i].x, vertices[i].y, vertices[i].z);
new Vector3(Random.Range(-10f, 10f), Random.Range(-10f, 10f), Random.Range(-10f, 10f)) * 0.5f,

}

としているのに、やはり上記のエラーがでます。助けてください・・・
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.029s