パスワードを忘れた? アカウント作成
14310278 journal
日記

yumeの日記: Unity学習 #8 2D Visibility 2

日記 by yume

2D Visibility

●頂点の数を数えて、座標をとる。

・Start関数ですべてのPolyWallから、頂点座標リストpolyPointsを取得する。
・他のGameObjectを探すにはいくつか方法があるが、tagをもとに複数のGameObjectを探す場合は GameObject.FindGameObjectWithTag(string tag);
例えば"PolyWall"タグのオブジェクトを探すなら
GameObject[] polyWalls = GameObject.FindGameObjectsWithTag("PolyWall");
のようにする。

取得したpolyWallsの、スクリプトの変数などをとりたい。
Unityスクリプトもまたコンポーネントなので、ここでは前回作った「PolygonWall」スクリプトを取得する。
PolygonWall hisScript = polyWalls[0].GetComponent();
のようにすれば、PolygonWallスクリプト型で変数がとれる。

外部からも値を取れるように、polyPoints変数を
public List PolyPoinits { private set; get; }
のように書き直す。

List endPointsリストにすべての頂点座標を追加する。
endPoints.AddRange(hisScript.PolyPoinits);

これで、リストendPointsにはすべての頂点の座標が入ることになる。はずだ。

一旦動かすと、狙い通りの挙動になっているように見える。

衝突しなかった場合の線も表示してみよう。あと部屋の四隅の座標にもrayを飛ばす。
お、それっぽくなってきたぞ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2020年09月12日 19時18分 (#3888057)

    3Dゲームだと当然物理学なんかの知識が必要になるのですがそれを敬遠してゲームを作ってない私。
    作るより遊ぶほうが楽しいからというのもありますけども。

  • by Anonymous Coward on 2020年09月13日 13時37分 (#3888303)

    タグは定数で。
    タグ自体をまとめたクラスを作るか関連したクラスで定義するかは方針次第。
    定数を参照した定数も定義できるので両方というのもアリ。

typodupeerror

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

読み込み中...