public void Detach_test() { Attachment attachment = new Attachment(); attachment.Attach(GameObject.CreatePrimitive(PrimitiveType.Cube).transform, GetEquipmentFixture()); Equipment equipment = attachment.Detach(); Assert.That(equipment != null); Assert.That(equipment.Amount == 1); Assert.That(equipment.EquipmentData.ID == "leather_boots"); Assert.That(!attachment.IsAttached); }
void Start() { mouse = GetComponent <ClingyMouse>(); mouse.events.OnMouse0Down.AddListener(info => { Collider2D coll = Physics2D.OverlapPoint(transform.position); if (!coll) { return; } attachment = Clingy.AttachOneToOne(dragStrategy, gameObject, coll.gameObject); }); mouse.events.OnMouse0Up.AddListener(info => { if (attachment != null) { attachment.Detach(); attachment = null; } }); }
/// <summary> /// Unequip method that detach the equipment from the body. /// </summary> /// <param name="attachment">The attachment</param> /// <param name="equipment">The equipment that is attached, if successful.</param> /// <returns>Return true, if there is an equipment attached.</returns> private bool Unequip(Attachment attachment, out Equipment equipment) { if (!attachment.IsAttached) { equipment = null; return(false); } equipment = attachment.Detach(); if (!ReferenceEquals(equipment, null) && equipment.EquipmentData.HideBodyPart) { _actor.Body.DisplayBodyParts(equipment.EquipmentData.SlotType, true); } _actor.Statistics.UpdateStatistics(equipment.EquipmentData.EquipmentStats.Statistics, false); OnEquipmentRemovedEvent?.Invoke(equipment); return(true); }