そのような処理をUnity2Dではどのようにやるのかを調べました。
ただし、PC上で動作するようにタップではなく、マウスクリックになっているのであしからず。
まずは、2Dプロジェクトを作成して、適当な背景を置いて、Directional lightも配置します。
次に3D ObjectのSphereを作成し、Sphere Colliderを削除、Circle Collider 2Dを追加したら、Prefab化しておきます。
最後にカメラあたりにスクリプトを追加して、以下のようなコードを書きます。
#pragma strict
//生成するオブジェクト
public var prefab : GameObject;
function Update () {
//マウスが左クリックされた場合
if (Input.GetMouseButtonDown(0)) {
//マウスポインタの位置をワールド座標に変換
var worldPoint : Vector2 = Camera.main.ScreenToWorldPoint(Input.mousePosition);
//クリックした位置に当たり判定があったかどうか
var hit : RaycastHit2D = Physics2D.Raycast(worldPoint, Vector2.zero);
if (hit) {
//当たり判定があった場合は対象を削除
Destroy(hit.collider.gameObject);
} else {
//当たり判定が無かった場合はオブジェクトを生成
var bullet = Instantiate(prefab, worldPoint, Quaternion.identity);
}
}
}
コードを保存したら、プロパティ(prefab)にさっきのSphereを紐付けてください。
実行すると、何もない場所をクリックするとSphereが生成され、Sphereをクリックすると消滅します。
タップ(クリック)の処理も簡単に実装できてしまいました。
この調子で行けばすぐにゲームが作れちゃいそうですね。
0 件のコメント:
コメントを投稿