オブジェクトをタップしたらそのオブジェクトを破壊する
UnityofRayFireの基本的な使い方
UnityofRayFireの基本的な使い方はほかの記事にまとめておりますので見ていない方はぜひ見てください
1.タップしたらタップしたオブジェクトを消して壊れるオブジェクト出すscriptを書く
test
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class test : MonoBehaviour
{
[SerializeField,Header("破壊されるobjectのprefab")] GameObject _breakObject;
private Vector3 _position;
GameObject clickedGameObject;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
clickedGameObject = null;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit))
{
clickedGameObject = hit.collider.gameObject;
_position = clickedGameObject.transform.position;
Destroy(clickedGameObject);
GameObject a = Instantiate(_breakObject, _position, Quaternion.identity);
}
}
}
}
説明
test
clickedGameObject = hit.collider.gameObject;
ここでタップしたobjectの情報を変数に入れてます
test
_position = clickedGameObject.transform.position;
ここではさっき変数に入れたオブジェクトのtransformを変数に入れてます
test
Destroy(clickedGameObject);
GameObject a = Instantiate(_breakObject, _position, Quaternion.identity);
ここではクリックしたobjectを壊して壊れるオブジェクトを生成してます
2. 破壊されるobjectをprefabにする
これを行わないと破壊されるobjectをprefabにしてもMeshが読み込まれず使いものになりません
このようにobjectがprefabのアイコンに出ていれば成功です
testscriptをscene内においてprefabを設定する
最後に破壊されるobjectの同じサイズのobjectを置く