44 lines
946 B
C#
44 lines
946 B
C#
using UnityEngine;
|
|
|
|
public class PlayerGrabber : MonoBehaviour
|
|
{
|
|
public float grabDistance = 2f;
|
|
private CartGrabAndHold heldCart;
|
|
|
|
void Update()
|
|
{
|
|
if (Input.GetKeyDown(KeyCode.E))
|
|
{
|
|
if (heldCart == null)
|
|
{
|
|
TryGrabCart();
|
|
}
|
|
else
|
|
{
|
|
heldCart.ReleaseCart();
|
|
heldCart = null;
|
|
}
|
|
}
|
|
|
|
if (heldCart != null)
|
|
{
|
|
heldCart.HoldCart();
|
|
}
|
|
}
|
|
|
|
void TryGrabCart()
|
|
{
|
|
Ray ray = new Ray(transform.position, transform.forward);
|
|
RaycastHit hit;
|
|
|
|
if (Physics.Raycast(ray, out hit, grabDistance))
|
|
{
|
|
CartGrabAndHold cart = hit.collider.GetComponent<CartGrabAndHold>();
|
|
if (cart != null)
|
|
{
|
|
heldCart = cart;
|
|
cart.GrabCart(transform);
|
|
}
|
|
}
|
|
}
|
|
}
|