void ReleaseStickman() { // foreach stickman for (int i = 0; i < GameManager.Instance.Characters.Count; i++) { var charId = (CharId)i; var character = GameManager.Instance.Characters[charId]; var cursor = _owner.GrabStickmanCursors[i]; if (character == null) { continue; } // unfreeze character character.Freeze = false; character.enabled = true; Queue <AbstractCursorCommand> cursorCommands = new Queue <AbstractCursorCommand>(); // cursor commands var stopDrag = new StopDragCommand(); var moveOutScreen = new MoveToCommand(new Vector3(10, cursor.transform.position.y)); cursorCommands.Enqueue(stopDrag); cursorCommands.Enqueue(moveOutScreen); cursor.StartCommandsSequence(cursorCommands); } }
void MoveLevelLayout(ref Queue <AbstractCursorCommand> cursorCommands) { var levelLayoutElements = GameObject.FindObjectsOfType <LevelLayoutElement>(); levelLayoutElements = levelLayoutElements.OrderBy(x => x.PriorityOrder).ToArray(); for (int i = 0; i < levelLayoutElements.Length; i++) { var element = levelLayoutElements[i]; var moveToWindow = new MoveToCommand(element.transform); var dragWindow = new StartDragCommand(element.transform); var moveToNewPosition = new MoveToCommand(element.GetPosition(LevelLayoutManager.Instance.LevelLayoutState)); var stopDrag = new StopDragCommand(); // OPTIMIZATION: sortir cette line de la loop cursorCommands.Enqueue(moveToWindow); cursorCommands.Enqueue(dragWindow); cursorCommands.Enqueue(moveToNewPosition); cursorCommands.Enqueue(stopDrag); } var moveOutScreen = new MoveToCommand(Vector3.right * 10); cursorCommands.Enqueue(moveOutScreen); }