예제 #1
0
    // Start is called before the first frame update
    void Start()
    {
        circleObjList = new List <GameObject>();
        boxList       = new List <Transform>();
        boxColorList  = new List <SpriteRenderer>();
        boxTextList   = new List <Text>();

        boxList.Add(Box.GetComponent <Transform>());
        boxList.Add(Box1.GetComponent <Transform>());
        boxList.Add(Box2.GetComponent <Transform>());
        boxList.Add(Box3.GetComponent <Transform>());

        boxColorList.Add(Box.GetComponent <SpriteRenderer>());
        boxColorList.Add(Box1.GetComponent <SpriteRenderer>());
        boxColorList.Add(Box2.GetComponent <SpriteRenderer>());
        boxColorList.Add(Box3.GetComponent <SpriteRenderer>());

        boxTextList.Add(Box.transform.GetChild(0).gameObject.GetComponent <Text>());
        boxTextList.Add(Box1.transform.GetChild(0).gameObject.GetComponent <Text>());
        boxTextList.Add(Box2.transform.GetChild(0).gameObject.GetComponent <Text>());
        boxTextList.Add(Box3.transform.GetChild(0).gameObject.GetComponent <Text>());

        // 円オブジェクトの作成カウント初期化
        for (int i = 0; i < boxTextList.Count; i++)
        {
            boxTextList[i].text = Random.Range(1, 5 + 1).ToString();
        }
    }
예제 #2
0
 private void OnTriggerStay2D(Collider2D collision)
 {
     if (collision.tag == "Box" || collision.tag == "Player")
     {
         Player.GetComponent <Player>().RestartLevel(true);
         Box.GetComponent <Crate>().RestartLevel();
         Box2.GetComponent <Crate>().RestartLevel();
     }
 }
예제 #3
0
    private void Update()
    {
        if (enabled && isTapeOn)
        {
            if (Input.GetMouseButtonDown(0))
            {
                Box1 = null;

                Press();
                _initialPosition = GetCurrentMousePosition().GetValueOrDefault();
                _lineRenderer.SetPosition(0, _initialPosition);
                _lineRenderer.SetVertexCount(1);
                _lineRenderer.enabled = true;
            }
            else if (Input.GetMouseButton(0))
            {
                _currentPosition = GetCurrentMousePosition().GetValueOrDefault();
                _lineRenderer.SetVertexCount(2);
                _lineRenderer.SetPosition(1, _currentPosition);
            }
            else if (Input.GetMouseButtonUp(0))
            {
                Box2 = null;

                Release();
                _lineRenderer.enabled = false;
                var releasePosition = GetCurrentMousePosition().GetValueOrDefault();
                var direction       = releasePosition - _initialPosition;
            }

            else
            {
                _lineRenderer.enabled = false;
            }

            var Difx = Mathf.Abs(tmpx2 - tmpx1);
            var Dify = Mathf.Abs(tmpy2 - tmpy1);

            if (Box1 != null && Box2 != null)
            {
                var Distance = (Box1.transform.position - Box2.transform.position).magnitude;
                if (Distance < minDistance)
                {
                    empty = new GameObject();
                    empty.transform.position = midPoint;
                    empty.AddComponent <MeshRenderer>();

                    if (Difx > 1 && Dify < 1)
                    {
                        empty.AddComponent <BoxCollider>();
                        empty.GetComponent <BoxCollider>().size = new Vector3(3.0f, 1.43f, 1.77f);
                        Box1.transform.position = new Vector3(Box1.transform.position.x, empty.transform.position.y,
                                                              Box1.transform.position.z);
                        Box2.transform.position = new Vector3(Box2.transform.position.x, empty.transform.position.y,
                                                              Box2.transform.position.z);
                        _tape = Instantiate(tape, empty.transform.position, Quaternion.identity);
                    }
                    else if (Difx < 1 && Dify > 1)
                    {
                        empty.AddComponent <BoxCollider>();
                        empty.GetComponent <BoxCollider>().size = new Vector3(1.43f, 3.0f, 1.77f);
                        Box1.transform.position = new Vector3(empty.transform.position.x, Box1.transform.position.y,
                                                              Box1.transform.position.z);
                        Box2.transform.position = new Vector3(empty.transform.position.x, Box2.transform.position.y,
                                                              Box2.transform.position.z);
                        _tape = Instantiate(tape, empty.transform.position, Quaternion.Euler(0, 0, 90));
                    }
                    else
                    {
                        Destroy(empty);
                        isTapeOn = false;
                        Box1     = null;
                        Box2     = null;
                        return;
                    }

                    empty.AddComponent <Rigidbody>();
                    empty.GetComponent <Rigidbody>().constraints =
                        RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotation;
                    empty.AddComponent <BoxController>();
                    empty.AddComponent <GroupedBox>();

                    _tape.transform.position = new Vector3(_tape.transform.position.x, _tape.transform.position.y,
                                                           _tape.transform.position.z + 1);
                    _tape.transform.parent = empty.transform;
                    Box1.transform.parent  = empty.transform;
                    Box2.transform.parent  = empty.transform;
                    Destroy(Box1.GetComponent <Rigidbody>());
                    Destroy(Box2.GetComponent <Rigidbody>());
                    Box1.GetComponent <BoxCollider>().isTrigger = true;
                    Box2.GetComponent <BoxCollider>().isTrigger = true;
                    Destroy(Box1.GetComponent <BoxController>());
                    Destroy(Box2.GetComponent <BoxController>());

                    Box1 = null;
                    Box2 = null;
                    foreach (var box in boxes)
                    {
                        box.GetComponent <BoxController>().enabled = true;
                    }
                    isTapeOn = false;
                }
                else
                {
                    Box2 = null;
                    Box1 = null;
                }
            }
        }

        /*
         * if (startTape)
         * {
         *
         *  if (Input.GetKeyDown(KeyCode.Escape))
         *  {
         *
         *      startTape = false;
         *      testgroup();
         *  }
         *
         * }*/

        if (tapeing)
        {
            if (GameManager.Instance.currLevels == 4 || GameManager.Instance.currLevels == 5)
            {
                if (startfunciton)
                {
                    startfunciton = false;
                    Invoke("testgroup", 0.1f);
                }
            }
        }
    }
예제 #4
0
    private void ConnectBox()
    {
        if (Box1 != null && Box2 != null)
        {
            var Difx     = Mathf.Abs(tmpx2 - tmpx1);
            var Dify     = Mathf.Abs(tmpy2 - tmpy1);
            var Distance = (Box1.transform.position - Box2.transform.position).magnitude;
            if (Distance < minDistance)
            {
                empty     = new GameObject();
                empty.tag = "Draggable";
                empty.transform.position = midPoint;
                empty.AddComponent <MeshRenderer>();
                if (Difx > 1 && Dify < 1)
                {
                    empty.AddComponent <BoxCollider>();
                    empty.GetComponent <BoxCollider>().size = new Vector3(2.85f, 1.38f, 1.77f);
                    Box1.transform.position = new Vector3(Box1.transform.position.x, empty.transform.position.y,
                                                          Box1.transform.position.z);
                    Box2.transform.position = new Vector3(Box2.transform.position.x, empty.transform.position.y,
                                                          Box2.transform.position.z);
                    _tape = Instantiate(tape, empty.transform.position, Quaternion.identity);
                }
                else if (Difx < 1 && Dify > 1)
                {
                    empty.AddComponent <BoxCollider>();
                    empty.GetComponent <BoxCollider>().size = new Vector3(1.38f, 2.85f, 1.77f);
                    Box1.transform.position = new Vector3(empty.transform.position.x, Box1.transform.position.y,
                                                          Box1.transform.position.z);
                    Box2.transform.position = new Vector3(empty.transform.position.x, Box2.transform.position.y,
                                                          Box2.transform.position.z);
                    _tape = Instantiate(tape, empty.transform.position, Quaternion.Euler(0, 0, 90));
                }
                else
                {
                    Destroy(empty);
                    isTapeOn = false;
                    Box1     = null;
                    Box2     = null;
                    return;
                }

                empty.AddComponent <Rigidbody>();
                empty.GetComponent <Rigidbody>().constraints =
                    RigidbodyConstraints.FreezePositionZ | RigidbodyConstraints.FreezeRotation;
                empty.AddComponent <BoxController>();
                empty.AddComponent <GroupedBox>();

                _tape.transform.position = new Vector3(_tape.transform.position.x, _tape.transform.position.y,
                                                       _tape.transform.position.z + 1);
                _tape.transform.parent = empty.transform;
                Box1.transform.parent  = empty.transform;
                Box2.transform.parent  = empty.transform;
                Destroy(Box1.GetComponent <Rigidbody>());
                Destroy(Box2.GetComponent <Rigidbody>());
                Box1.GetComponent <BoxCollider>().isTrigger = true;
                Box2.GetComponent <BoxCollider>().isTrigger = true;
                Destroy(Box1.GetComponent <BoxController>());
                Destroy(Box2.GetComponent <BoxController>());

                Box1 = null;
                Box2 = null;
                foreach (var box in boxes)
                {
                    box.GetComponent <BoxController>().enabled = true;
                }
                isTapeOn = false;
            }
            else
            {
                Box2 = null;
                Box1 = null;
            }
        }
    }