レイの活用その2(オブジェクトをプッシュする)

オブジェクトをプッシュする
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);
}
// ★追加(プッシュ)
if(target.CompareTag("Push"))
{
if(hit.rigidbody)
{
hit.rigidbody.AddForce(-hit.normal * 1000);
}
}
}
}
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);
}
// ★追加(プッシュ)
if(target.CompareTag("Push"))
{
if(hit.rigidbody)
{
hit.rigidbody.AddForce(-hit.normal * 1000);
}
}
}
}
else
{
line.SetPosition(1, ray.origin + (ray.direction * maxDistance));
}
}
void OnDisable()
{
isa.Disable();
}
}

レイの活用その2(オブジェクトをプッシュする)