출처: 골드 메탈 님의 유튜브 콘텐츠 클론 코딩


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | private void OnTriggerEnter2D(Collider2D collision) { if(collision.gameObject.tag == "Border") { code } else if(collision.gameObject.tag == "EnemyBullet" || collision.gameObject.tag == "Enemy") { code } else if(collision.gameObject.tag == "Item") { Item item = collision.gameObject.GetComponent<Item>(); switch (item.type) { case "Coin": score += 1000; break; case "Power": if(power == maxPower) { score += 500; } else { power++; } break; case "Boom": if(boom == 3) { score += 500; } else { boom++; } GameManager gm = gameManager.GetComponent<GameManager>(); gm.UpdateBoomIcon(boom); break; } Destroy(collision.gameObject); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | void Boom() { if (!Input.GetButton("Fire2")) return; if (isBoomTime || boom <= 0) return; isBoomTime = true; boom--; GameManager gm = gameManager.GetComponent<GameManager>(); gm.UpdateBoomIcon(boom); boomEffect.SetActive(true); Invoke("OffBoomEffect", 3f); GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy"); for (int i = 0; i < enemies.Length; i++) { Enemy enemyLogic = enemies[i].GetComponent<Enemy>(); enemyLogic.OnHit(1000); } GameObject[] bullets = GameObject.FindGameObjectsWithTag("EnemyBullet"); for (int i = 0; i < enemies.Length; i++) { Destroy(bullets[i]); } } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | public void OnHit(int dmg) { if (isHit) return; health -= dmg; spriteRenderer.sprite = sprites[1]; isHit = true; Invoke("ReturnSprite", 0.1f); Invoke("ReturnHit", 0.01f); if (health <= 0) { Player playerScore = player.GetComponent<Player>(); playerScore.score += enemyScore; Destroy(gameObject); int ran = Random.Range(0, 10); if(ran < 3) { Debug.Log("No item"); } else if(ran < 5) { Instantiate(itemCoin, transform.position, itemCoin.transform.rotation); } else if(ran < 7) { Instantiate(itemBoom, transform.position, itemBoom.transform.rotation); } else if(ran < 10) { Instantiate(itemPower, transform.position, itemPower.transform.rotation); } } } | cs |
