private void MakeGarbageFromOccupied(int current, ref GameObject gameObject) { if (gameObject.IsMoved) { gameObject.IsMoved = false; gameObject.DetachFromMoved(current, ref this.firstMovedObject, ref this.lastMovedObject, this); } gameObject.IsGarbage = true; gameObject.Detach(current, ref this.firstOccupied, ref this.lastOccupied, this); gameObject.AttachTail(current, ref this.firstGarbage, ref this.lastGarbage, this); }
private void ProcessPositionChanged(int index, ref GameObject gameObject) { gameObject.IsMoved = false; gameObject.DetachFromMoved(index, ref this.firstMovedObject, ref this.lastMovedObject, this); this.UpdateWorldPositionAndNotifyComponents(ref gameObject); }