Initial Unity prototype
This commit is contained in:
commit
138750dd52
386 changed files with 40723 additions and 0 deletions
54
Assets/Scripts/CartGrabAndPush.cs
Normal file
54
Assets/Scripts/CartGrabAndPush.cs
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class CartGrabAndHold : MonoBehaviour
|
||||
{
|
||||
public float holdDistance = 1.5f; // Distance in front of player
|
||||
public float moveSpeed = 5f; // How fast the cart follows
|
||||
public float floatHeight = 0.5f; // Height above the ground to simulate wheels
|
||||
|
||||
private bool isHolding = false; // Whether the cart is currently held
|
||||
private Transform player; // The transform of the player
|
||||
private Rigidbody rb; // Cart's rigidbody
|
||||
|
||||
void Start()
|
||||
{
|
||||
rb = GetComponent<Rigidbody>();
|
||||
}
|
||||
|
||||
// Called by PlayerGrabber when grabbing
|
||||
public void GrabCart(Transform playerTransform)
|
||||
{
|
||||
isHolding = true;
|
||||
player = playerTransform;
|
||||
rb.isKinematic = true; // Disable physics for smooth movement
|
||||
}
|
||||
|
||||
// Called by PlayerGrabber when releasing
|
||||
public void ReleaseCart()
|
||||
{
|
||||
isHolding = false;
|
||||
rb.isKinematic = false; // Re-enable physics
|
||||
player = null;
|
||||
}
|
||||
|
||||
// Used by PlayerGrabber to keep cart following the player
|
||||
public void HoldCart()
|
||||
{
|
||||
if (!isHolding || player == null) return;
|
||||
|
||||
// Target position is in front of the player on X/Z, floating above ground
|
||||
Vector3 targetPosition = player.position + player.forward * holdDistance;
|
||||
targetPosition.y = floatHeight;
|
||||
|
||||
// Smoothly move cart toward target
|
||||
transform.position = Vector3.Lerp(transform.position, targetPosition, Time.deltaTime * moveSpeed);
|
||||
|
||||
// Face the same direction as the player
|
||||
transform.rotation = Quaternion.LookRotation(player.forward);
|
||||
}
|
||||
|
||||
public bool IsHolding()
|
||||
{
|
||||
return isHolding;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue