レイの活用その1(オブジェクトを破壊する)

レイでオブジェクトを破壊する
using UnityEngine;
public class RayController : MonoBehaviour
{
public Transform anchor;
private float maxDistance = 100;
private InputSystem_Actions isa;
private LineRenderer line;
public GameObject effectPrefab;
void Start()
{
isa = new InputSystem_Actions();
isa.Enable();
line = GetComponent<LineRenderer>();
}
void Update()
{
RaycastHit hit;
Ray ray = new Ray(anchor.position, anchor.forward);
line.SetPosition(0, ray.origin);
if (Physics.Raycast(ray, out hit, maxDistance))
{
line.SetPosition(1, hit.point);
GameObject target = hit.collider.gameObject;
if (isa.Player.Attack.triggered)
{
// ★破壊する
if (target.CompareTag("Burst"))
{
Destroy(target.gameObject);
GameObject effect = Instantiate(effectPrefab, target.transform.position, Quaternion.identity);
Destroy(effect, 0.75f);
}
}
}
else
{
line.SetPosition(1, ray.origin + (ray.direction * maxDistance));
}
}
void OnDisable()
{
isa.Disable();
}
}














レイでオブジェクトを破壊する
using UnityEngine;
public class RayController : MonoBehaviour
{
public Transform anchor;
private float maxDistance = 100;
private InputSystem_Actions isa;
private LineRenderer line;
public GameObject effectPrefab;
void Start()
{
isa = new InputSystem_Actions();
isa.Enable();
line = GetComponent<LineRenderer>();
}
void Update()
{
RaycastHit hit;
Ray ray = new Ray(anchor.position, anchor.forward);
line.SetPosition(0, ray.origin);
if (Physics.Raycast(ray, out hit, maxDistance))
{
line.SetPosition(1, hit.point);
GameObject target = hit.collider.gameObject;
if (isa.Player.Attack.triggered)
{
// ★破壊する
if (target.CompareTag("Burst"))
{
Destroy(target.gameObject);
GameObject effect = Instantiate(effectPrefab, target.transform.position, Quaternion.identity);
Destroy(effect, 0.75f);
}
}
}
else
{
line.SetPosition(1, ray.origin + (ray.direction * maxDistance));
}
}
void OnDisable()
{
isa.Disable();
}
}













レイの活用その1(オブジェクトを破壊する)