KZ
item
Негізгі бет
Трендинг
Журнал
Ұнаған бейнелер
Ең жақсы KZitem
Фильм және анимация
Автокөліктер мен көлік құралдары
Музыка
Үй жануарлары мен аңдар
Спорт
Ойындар
Комедия
Ойын-сауық
Тәжірибелік нұсқаулар және стиль
Ғылым және технология
Кіру
Тіркелу
Кіру
Тіркелу
Негізгі бет
Трендинг
Журнал
Ұнаған бейнелер
Ең жақсы KZitem
Фильм және анимация
Автокөліктер мен көлік құралдары
Музыка
Үй жануарлары мен аңдар
Спорт
Ойындар
Комедия
Ойын-сауық
Тәжірибелік нұсқаулар және стиль
Ғылым және технология
Негізгі бет
object pickup/hide/drop with animation unity
16 күн бұрын
object pickup/hide/drop with animation unity
Рет қаралды
37
`Orange.io`
1
1
Жүктеу
Пікірлер: 1
@OfficialOrangeio
14 күн бұрын
using UnityEngine; public class PickObject : MonoBehaviour { public enum ObjectCategory { None, Rifle, Handgun, Projectile } [SerializeField] private ObjectCategory objectType; [SerializeField] private Animator animator; [SerializeField] private Transform playerHand; [SerializeField] private GameObject pickPrompt; private bool isObjectOut, isPickedUp, isDropped; private Transform originalParent; private void Start() { pickPrompt.SetActive(false); originalParent = transform.parent; } private void Update() { if (Input.GetKeyDown(KeyCode.Alpha2) && isPickedUp) ToggleObject(true, playerHand); if (Input.GetKeyDown(KeyCode.Alpha1) && isObjectOut && !isDropped) ToggleObject(false, originalParent); if (Input.GetKeyDown(KeyCode.G) && isPickedUp && isObjectOut) DropObject(); } private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player") && !isPickedUp) pickPrompt.SetActive(true); } private void OnTriggerStay(Collider other) { if (other.CompareTag("Player") && Input.GetKey(KeyCode.E) && !isPickedUp) { isPickedUp = true; pickPrompt.SetActive(false); transform.SetParent(playerHand); animator.Play("pickup"); transform.localPosition = Vector3.zero; transform.localRotation = Quaternion.identity; GetComponent().isKinematic = true; } } private void OnTriggerExit(Collider other) { if (other.CompareTag("Player")) pickPrompt.SetActive(false); } private void ToggleObject(bool show, Transform parent) { animator.SetTrigger(objectType.ToString().ToLower() + show); foreach (var renderer in GetComponentsInChildren(true)) renderer.enabled = show; isObjectOut = show; transform.SetParent(parent); transform.localPosition = Vector3.zero; transform.localRotation = Quaternion.identity; } private void DropObject() { isDropped = true; isPickedUp = false; isObjectOut = false; animator.Play("drop"); transform.SetParent(null); GetComponent().isKinematic = false; GetComponent().AddForce(playerHand.forward * 2.0f, ForceMode.VelocityChange); } }
Пікірлер: 1