// 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(); } }
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(); } }
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); } } } }
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; } } }