public void OnDrop(PointerEventData data)
    {
        CommandCount.Add();

        CardMovement dragObj = data.pointerDrag.GetComponent <CardMovement>();

        if (dragObj != null)
        {
            dragObj.parentTransform = this.transform;
            Debug.Log(gameObject.name + "に" + data.pointerDrag.name + "をドロップ(field)");
            if (dragObj.CompareTag("right"))
            {
                C.GetComponent <UnityChanAttempt>().RightRun();
                //  C.transform.Translate(1,0,0);
            }
            if (dragObj.CompareTag("left"))
            {
                if (C.transform.position.x <= -8)
                {
                    Instantiate(childObject, new Vector3(400, 250, 0), Quaternion.identity, parent);
                }
                else
                {
                    C.GetComponent <UnityChanAttempt>().LeftRun();
                    // C.transform.Translate(-1,0,0);
                }
            }
            if (dragObj.CompareTag("up"))
            {
                C.GetComponent <UnityChanAttempt>().Jump();
                //  C.transform.Translate(0,1,0);
            }
            if (dragObj.CompareTag("down"))
            {
                C.transform.Translate(0, -1, 0);
            }
            if (dragObj.CompareTag("rightRun"))
            {
                StartCoroutine(C.GetComponent <UnityChanAttempt>().Runx());
            }
            if (dragObj.CompareTag("leftRun"))
            {
                StartCoroutine(C.GetComponent <UnityChanAttempt>().Runy());
            }
            if (dragObj.CompareTag("if"))
            {
                C.GetComponent <UnityChanAttempt>().ActivateOnCollisionStay();
            }
        }
    }
Example #2
0
    public void GetAllChildObjects()
    {
        GameObject[] ChildObjects = new GameObject[PlayerField.transform.childCount];

        for (int i = 0; i < PlayerField.transform.childCount; i++)
        {
            ChildObjects[i] = PlayerField.transform.GetChild(i).gameObject;
        }

        Array.Sort(ChildObjects, (a, b) => (int)b.transform.position.y - (int)a.transform.position.y);

        for (int i = 0; i < ChildObjects.Length; i++)
        {
            CommandCount.Add();
            commandsQueue.Enqueue(ChildObjects[i]);
        }
        GameObject last = new GameObject("lastCommand");

        last.tag = "lastCommand";
        commandsQueue.Enqueue(last);
    }
 private void Start()
 {
     CommandCount.Reset();
 }
Example #4
0
    IEnumerator Run()
    {
        GetAllChildObjects();

        for (; commandsQueue.Count != 0;)
        {
            GameObject commandObj = commandsQueue.Dequeue();
            string     command    = commandObj.tag;
            CommandText.text = command;
            switch (command)
            {
            case "right":
                C.GetComponent <UnityChanAttempt>().RightRun();
                break;

            case "left":
                C.GetComponent <UnityChanAttempt>().LeftRun();
                break;

            case "up":
                C.GetComponent <UnityChanAttempt>().Jump();
                break;

            case "down":
                C.transform.Translate(0, -2, 0);
                break;

            case "rightRun":
            {
                float x = C.GetComponent <UnityChanAttempt>().GetRightInput();
                for (int i = 0; i < Math.Floor(x); i++)
                {
                    C.GetComponent <UnityChanAttempt>().RightRun();
                    yield return(new WaitForSeconds(1.0f));
                }
            }
            break;

            case "leftRun":
            {
                float x = C.GetComponent <UnityChanAttempt>().GetLeftInput();
                for (int i = 0; i < Math.Floor(x); i++)
                {
                    C.GetComponent <UnityChanAttempt>().LeftRun();
                    yield return(new WaitForSeconds(1.0f));
                }
            }
            break;

            case "if":
                C.GetComponent <UnityChanAttempt>().ActivateOnCollisionStay();
                yield return(null);

                C.GetComponent <UnityChanAttempt>().DeactivateOnCollisionStay();
                break;

            case "while":
                GameObject   whileCommand = commandObj.transform.GetChild(1).gameObject;
                GameObject[] ChildObjects = new GameObject[whileCommand.transform.childCount];

                for (int i = 0; i < whileCommand.transform.childCount; i++)
                {
                    ChildObjects[i] = whileCommand.transform.GetChild(i).gameObject;
                }
                string[] commandsOnWhile = new string[ChildObjects.Length];
                Array.Sort(ChildObjects, (a, b) => (int)b.transform.position.y - (int)a.transform.position.y);

                for (int i = 0; i < ChildObjects.Length; i++)
                {
                    commandsOnWhile[i] = ChildObjects[i].tag;
                    CommandCount.Add();
                }
                while (true)
                {
                    oldPosition = C.transform.position;
                    foreach (string commandOnWhile in commandsOnWhile)
                    {
                        CommandText.text = commandOnWhile + "(whileの中)";
                        switch (commandOnWhile)
                        {
                        case "right":
                            C.GetComponent <UnityChanAttempt>().RightRun();
                            break;

                        case "left":
                            C.GetComponent <UnityChanAttempt>().LeftRun();
                            break;

                        case "up":
                            C.GetComponent <UnityChanAttempt>().Jump();
                            break;

                        case "down":
                            C.transform.Translate(0, -2, 0);
                            break;

                        case "rightRun":
                            C.GetComponent <UnityChanAttempt>().Runx();
                            break;

                        case "leftRun":
                            C.GetComponent <UnityChanAttempt>().Runy();
                            break;

                        case "if":
                            C.GetComponent <UnityChanAttempt>().ActivateOnCollisionStayOnWhile();
                            break;

                        default:
                            break;
                        }
                        yield return(new WaitForSeconds(1.0f));
                    }

                    Vector3 currentPosition = C.transform.position;
                    if (oldPosition == currentPosition)
                    {
                        C.GetComponent <UnityChanAttempt>().DeactivateOnCollisionStayOnWhile();
                        break;
                    }
                    currentPosition = oldPosition;
                }
                break;

            default:
                break;
            }
            yield return(new WaitForSeconds(2.0f));
        }
        gameObject.GetComponent <Button>().interactable = true;
        C.transform.position = initPosition;
    }
Example #5
0
 public void OnClick()
 {
     gameObject.GetComponent <Button>().interactable = false;
     CommandCount.Reset();
     StartCoroutine(Run());
 }