2015年1月20日火曜日

Unity2dで何かをタップ(クリック)する方法

アプリだと何かをタップしたり、タップした場所に何かを出したりということを良くやります。

そのような処理を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 件のコメント:

コメントを投稿