Exemple #1
0
    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);
    }