using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; public class PickUpObject : MonoBehaviour { public GameObject carryPosition; public bool insideTrigger = false; public bool carrying = false; public GameObject carriableObject; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if(insideTrigger && Input.GetKeyDown(KeyCode.D) && !carrying) { carrying = true; carriableObject.GetComponent().isKinematic = true; } else if(carrying && Input.GetKeyDown(KeyCode.D)) { carrying = false; carriableObject.GetComponent().isKinematic = false; } if(carrying) { carriableObject.transform.position = carryPosition.transform.position; carriableObject.transform.rotation = carryPosition.transform.rotation; } } void OnTriggerEnter(Collider other) { if(other.gameObject.tag == "PickupObject" && !carrying) { carriableObject = other.gameObject; // If player presses D while inside the trigger, pick up the object insideTrigger = true; } } void OnTriggerExit(Collider other) { if(other.gameObject.tag == "PickupObject") { insideTrigger = false; } } }