public void SetDragger(DraggerView draggerView) { RemoveDragger(); if (draggerView == null) { return; } this.draggerView = draggerView; this.dragger = draggerView.HitObject; SetParent(draggerView); // Override judgement end time so it doesn't go over any other nested object's start time // nor the dragger's end time. judgeEndTime = Mathf.Min(judgeEndTime, dragger.EndTime); foreach (var o in dragger.NestedObjects) { if (o != hitObject) { judgeEndTime = Mathf.Min(judgeEndTime, o.StartTime); } } // Reset to initial position Position = Vector3.zero; }
/// <summary> /// Disassociates this object from parent dragger. /// </summary> public void RemoveDragger() { if (draggerView == null) { return; } SetParent(draggerView.Parent); draggerView = null; }
/// <summary> /// Sets the parent dragger view. /// Specifying a null dragger should be equivalent to calling RemoveDragger. /// </summary> public void SetDragger(DraggerView draggerView) { RemoveDragger(); if (draggerView == null) { return; } this.draggerView = draggerView; SetParent(draggerView); // Reset to initial position SetInitialPosition(); }