void OnAreaTriggerEnter(Collider col) { var newItem = col.GetComponent <Pickable>() ?? col.GetComponentInParent <Pickable>(); if (newItem) { FocusedItem = newItem; FocusedItem.OnFocused.Invoke(true); OnFocusedItem.Invoke(FocusedItem); CanPickUp.Invoke(true); if (AutoPick.Value && !animal.IsPlayingMode) { TryPickUp(); } } }
public virtual void TryPickUp() { if (FocusedItem) { item = FocusedItem; if (item.PickAnimations) { UsePickUpAnimations(); } else { PickUpItem(); } } }
/// <summary>Pick Up Logic. It can be called by the ANimator</summary> public void PickUpItem() { item.Picked(); //Tell the Item that it was picked item.transform.parent = Holder; //Parent it to the Holder item.transform.localPosition = PosOffset; //Offset the Position item.transform.localEulerAngles = RotOffset; //Offset the Rotation PickUpArea?.gameObject.SetActive(false); //Disable the Pick Up Area FocusedItem?.OnFocused.Invoke(false); FocusedItem = null; //Remove the Focused Item animal?.UpdateAttackTriggers(); OnPicking.Invoke(item.ID); //Invoke the Method }
void _OnTriggerEnter(Collider col) { var newItem = col.FindComponent <Pickable>(); if (newItem) { FocusedItem = newItem; FocusedItem.OnFocused.Invoke(true); OnFocusedItem.Invoke(FocusedItem); CanPickUp.Invoke(true); if (FocusedItem.AutoPick) { TryPickUp(); } } }
public virtual void DropItem() { if (Has_Item) { //Debug.Log("DropItem"); item.Drop(); //Tell the item is being droped OnDropping.Invoke(item.ID); //Invoke the method OnItem.Invoke(null); item = null; //Remove the Item if (m_HidePickArea.Value) { PickUpArea.gameObject.SetActive(true); //Enable the Pick up Area } if (FocusedItem != null && !FocusedItem.AutoPick) { AreaTrigger.ResetTrigger(); } } }
private void OnEnable() { m = (Pickable)target; script = MonoScript.FromMonoBehaviour(target as MonoBehaviour); PickAnimations = serializedObject.FindProperty("PickAnimations"); PickUpMode = serializedObject.FindProperty("PickUpMode"); PickUpAbility = serializedObject.FindProperty("PickUpAbility"); DropAnimations = serializedObject.FindProperty("DropAnimations"); DropMode = serializedObject.FindProperty("DropMode"); DropAbility = serializedObject.FindProperty("DropAbility"); Align = serializedObject.FindProperty("Align"); AlignTime = serializedObject.FindProperty("AlignTime"); AlignDistance = serializedObject.FindProperty("AlignDistance"); OnFocused = serializedObject.FindProperty("OnFocused"); OnPicked = serializedObject.FindProperty("OnPicked"); OnDropped = serializedObject.FindProperty("OnDropped"); ShowEvents = serializedObject.FindProperty("ShowEvents"); FloatID = serializedObject.FindProperty("m_Value"); IntID = serializedObject.FindProperty("m_ID"); m_collider = serializedObject.FindProperty("m_collider"); }