Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Unity】マウスをクリックした箇所に円を発生させる手順


Unityでアプリを作成していると、アプリ実行中にマウスでクリックしたところにいろいろなものを発生させる必要がある場合があると思います。

 

最近でもマウスクリック箇所に円を発生させる必要があることがありました。

 

なんとか作成できたのでここに備忘録として書き残しておきます。

 

 

 

1.マウスクリック箇所に円を発生させるコード例

 

以下がマウスをクックした時に円を発生させるコード例になります。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class CircleGenerator : MonoBehaviour
{
    GameObject circle;
    // Update is called once per frame
    void Update()
    {
            if(Input.GetMouseButtonDown(0)){
              circle = Instantiate(circlePrefab) as GameObject; //circle生成
                if(circle != null){
                  // Vector2でマウス位置座標を取得する
                    Vector2 position = Input.mousePosition;
                    // マウス位置座標をスクリーン座標からワールド座標に変換する
                    Vector2 screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(position);
                    // ワールド座標に変換されたマウス座標を代入
                    circle.transform.position = screenToWorldPointPosition;
                }
            }
    }
}

 

上の例は2次元アプリ用の内容です。

Update()の中の処理となっています。

 

  if(Input.GetMouseButtonDown(0)){

 

の箇所でマウスがクリックされたかのチェックをしており、クリックされた場合に、

 

   circle = Instantiate(circlePrefab) as GameObject; //circle生成

 

で円を生成しています。

 

Vector2 position = Input.mousePosition;

 

で、マウスの位置座標を取得しており、

 

Vector2 screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(position);

 

で、マウス位置座標をスクリーン座標からワールド座標に変換しています。

最後に、その座標を、

 

circle.transform.position = screenToWorldPointPosition;

 

で、円の位置座標に設定しています。

 

 

以上が、マウスをクリックした箇所に円を発生させる手順になります。