public void DropGoldAndItems() { if (!alreadyDropObjects) { alreadyDropObjects = true; //-----------------------------------골드 드랍----------------------------------- DroppedGoldOrCrystal gold = Instantiate(DropGoldObject).GetComponent <DroppedGoldOrCrystal>(); int mDropGold = myMonsterInfo.monsterDropGoldAmount; gold.GoldAmount = Random.Range((int)(mDropGold * 0.7), (int)(mDropGold * 1.2)); // (몬스터 골드량의 70%) ~ (몬스터의 골드량 120%)을 전달 함. gold.name = myMonsterInfo.monsterName + " 드롭 골드량:" + gold; int ranX = Random.Range(-100, 101); //min ~ max-1 int ranY = Random.Range(100, 201); //min ~ max-1 gold.transform.position = GetComponent <Transform>().position; gold.GetComponent <Rigidbody2D>().AddForce(new Vector3(ranX, ranY, 0)); //위 방향으로 랜덤 발사 //-------------------------보스일 때 확률적으로 아이템 드랍 & 크리스탈 드랍------------------------- if (myMonsterInfo.isBoss) { if (Random.Range(0, 101) /*0~100*/ <= myMonsterInfo.monsterDropRate) { DropItem(); } if (Random.Range(0, 101) <= 30) //30% 확률 { } } } }
private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Monster") { FindObjectOfType <SoundManager>().Play("default_hurt"); FindObjectOfType <ParticleSupplier>().SetParticle(transform.position, "player_hit"); GameObject obj = collision.gameObject; OnDamaged(obj.transform.position, obj.GetComponent <MonsterParent>().myMonsterInfo.monsterDamage); //해당 몬스터의 파워가 여기 들어가야함. OnDamaged(obj.transform.position, 0); //해당 몬스터의 파워가 여기 들어가야함. } if (collision.gameObject.tag == "DropGold") //Gold Or Crystal { FindObjectOfType <SoundManager>().Play("default_getCapital"); DroppedGoldOrCrystal dropGOC = collision.gameObject.GetComponent <DroppedGoldOrCrystal>(); if (!dropGOC.isGet) { //Capital(자본을 관리하는 은행)에 돈을 넣는다. dropGOC.GetMoneyOrCrystal(); if (!dropGOC.isCrystal) { GetComponent <Capital>().PlusMoney(dropGOC.GoldAmount); } else { GetComponent <Capital>().PlusCrystal(dropGOC.GoldAmount / 10); //100골드 = 10크리스탈.. } } } if (collision.gameObject.tag == "Item") { FindObjectOfType <SoundManager>().Play("default_getItem"); //아이템 획득 후 처리 DroppedItem dropIS = collision.gameObject.GetComponent <DroppedItem>(); dropIS.GetItem(); changer.UnlockCode(dropIS.dropItemCode); //NoticeTextUI 에게 알려야함. //아이템 먹었다고 자랑해야함 NoticeTextUI noticeUI = GameObject.Find("NoticeTextBackground").transform.GetChild(0).GetComponent <NoticeTextUI>(); noticeUI.ItemEat("야매로 만듬.여기에 획득 아이템잉름 들어가야함"); } }