「PlayCanvas 3D チュートリアル」で学んだこと
はじめに
これに参加して、Unity 同様メモしたやつ。
Unity も全然使えないからむずかしい。。。
参考サイト
https://support.playcanvas.jp/hc/ja/articles/224172247
PlayCanvas のビューについて
Unity と一緒。すんなりイメージできた。
シーンビュー
カメラやスプライトを配置する画面
ヒエラルキービュー
カメラやスプライトの階層画面
プロジェクトビュー
プロジェクト画面 各種 IDE でもよく見るやつ
インスペクタービュー
カメラやスプライトの属性を設定する画面 Xcode でよく使うやつ
スクリプトについて
initialize
, update
, swap
というライフサイクル関数重要
- initialize: 初回に呼ばれるやつ
- update: 毎フレーム呼ばれるやつ
- swap: ホッとリローディング時に呼ばれるやつ
モデルについて
オブジェクトと同義なのかな? 物体のこと? エンティティとも言えるのかな?(エンティティはモデルの属性かな?) モデルを作成してマテリアルで色を付ける。
Attribute について
スクリプトに属性を付与することができる
var Shot = pc.createScript('shot'); Shot.attributes.add("bulletTemplate",{type:"entity"});
こんな感じ
テンプレートについて
Unity でいうところのプレハブ Template として定義しておくことでクローンを作成できる。
上記のように Entity タイプの Attribute を宣言したら、 該当ソースコードをアタッチしている物体を選択して Entity にモデルを設定する。 これで、モデルをたくさんクローンすることができる。
Number タイプの Attribute を宣言した場合は、大きさ等のデータを入れられるようになるということ。
Collision
当たり判定のこと。 タイプによって当たり判定枠が変わる。
this.entity.collision.on("collisionstart", this.death, this);
で当たり判定定義をスタートする。
this.death
はコールバック関数。
Rigid Body
物体に対して物理演算を付けることができる。 https://developer.playcanvas.com/ja/tutorials/collision-and-triggers/
- Static: エンティティを固定し、動かなくします。
- Dynamic: エンティティは重力と外部から与えられた力に影響されて動くようになります。
- Kinematic: エンティティは力に反応しなくなりますが、位置と速度を直接指定して動かすことができるようになります。
ということらしい。
Enemy.prototype.death = function(result) { if(result && result.other.rigidbody && result.other.name === "clone") { //衝突したコリジョンを持った相手の名前が"clone"だったら this.entity.destroy();//自分自身をdestroy result.other.destroy();//衝突した相手をdestroy } };
衝突したときに、衝突対象の名前を見て破壊する。
clone
は、Template のクローンに付けた名前である。
マテリアルについて
モデルに対する素材になるものである。
- テクスチャを貼ることができる
- 色を設定することができる
- マテリアルはモデルにアタッチすることで反映する