private void SelectSystem() { // 선택을 마쳤을 때, select flag가 켜져있는 사과는 selectList에 추가 if (Input.GetMouseButtonUp(0)) { foreach (AppleMeta everyApple in applesList) { if (everyApple.isSelected) { selectList.Add(everyApple); } } } // 선택을 마친게 아니면, select flag 초기화 else { foreach (AppleMeta everyApple in applesList) { everyApple.isSelected = false; } } // 선택박스가 켜져있는 동안, 박스 내의 사과의 select flag를 켜준다. if (selectBox.gameObject.activeSelf) { // 모든 사과의 선택을 초기화 foreach (AppleMeta everyApple in applesList) { everyApple.isSelected = false; } // 콜라이더로 선택을 설정 Collider2D[] hit = Physics2D.OverlapBoxAll(collideBox.anchoredPosition, collideBox.sizeDelta, 0f); foreach (Collider2D i in hit) { if (!i.CompareTag("apple")) { continue; } AppleMeta hitApple = i.gameObject.GetComponent <AppleMeta>(); // collide한 사과가 이미 새로 영역에 들어온 사과면, if (!hitApple.isSelected) { hitApple.isSelected = true; } } } }
private void Awake() { zeroPos = apple.transform.position; applesList = new List <AppleMeta>(); selectList = new List <AppleMeta>(); mapApple = new int[verticalLength, horizontalLength]; hints = new List <Vector4>(); for (int i = 0; i < verticalLength; i++) { for (int j = 0; j < horizontalLength; j++) { Vector3 newPos = new Vector3(zeroPos.x + j, zeroPos.y + i, zeroPos.z); GameObject newApple = Instantiate(apple, newPos, Quaternion.identity); AppleMeta _am = newApple.GetComponent <AppleMeta>(); newApple.name = string.Format("Apple ({0}, {1})", i, j); int _number = Random.Range(1, 10); _am.number = _number; _am.coor = new Vector2Int(i, j); mapApple[i, j] = _number; applesList.Add(_am); } } }