private void OnTriggerEnter(Collider coll) // 공격 충돌 처리 { if (coll.gameObject.tag == "enemy") // 충돌 대상이 적 태그를 가지고 있으면 { CROWD_CONTROL cc = CROWD_CONTROL.NONE; // 특수 공격상태 SPECIAL_DAMAGE sd = SPECIAL_DAMAGE.NONE; // 특수 추가 데미지 int criticalPercent = 20; // 기본 치명타 확률 int str = CharacterInfoManager.instance.m_iCurStr; EnemyInfomation enemyScript = coll.GetComponentInParent <EnemyInfomation>(); // 적 스크립트를 받아와서 if (Vector3.Dot(coll.transform.forward, (transform.position - coll.transform.position).normalized) < Mathf.Cos(90 * Mathf.Deg2Rad)) // 내적을 구해서 적의 정면에서 90도내에 플레이어가 없으면 (좌우 합쳐 180도) { cc = CROWD_CONTROL.BACK_ATTACK; // 백어택 발동 criticalPercent *= 2; // 크리티컬 확률 2배 } if (Random.Range(0, 100) < criticalPercent) // 크리티컬 확률 안에 들어오면 { if (cc == CROWD_CONTROL.BACK_ATTACK) { sd = SPECIAL_DAMAGE.CRITICAL_BACK_ATTACK; } else { sd = SPECIAL_DAMAGE.CRITICAL; } } enemyScript.attacted(m_fCurAttackDamage * str, sd, cc); // 그 적은 내 현재 공격모션의 데미지를 부여함 } if (coll.gameObject.tag == "Potal") // 충돌 대상이 스테이지를 넘어가는 포탈이면 { if (s_eventPlayerState == null) { GameManager.instance.nextDungeonLoad(); } else { GameManager.instance.stateExplain(1); } } if (coll.gameObject.tag == "DropItem") // 충돌 대상이 아이템이면 { DropItem dropItemScripte = coll.GetComponent <DropItem>(); ItemManager.Instance.putInventroyItem(dropItemScripte.getItenName()); // 인벤토리에 아이템을 넣음 ObjectPoolManager.Instance.PushToPool("DropItem", coll.gameObject); } if (coll.gameObject.tag == "DropGold") { DropGold dropGoldScripte = coll.GetComponent <DropGold>(); CharacterInfoManager.instance.m_playerInfo.m_iGold += coll.GetComponent <DropGold>().getGoldAmount(); ProfileUIManager.Instance.changeGold(); ObjectPoolManager.Instance.PushToPool("DropGold", coll.gameObject); } if (coll.gameObject.tag == "Barrigate") { GameManager.instance.stateExplain(0); } }
private void OnTriggerEnter(Collider coll) { if (coll.gameObject.tag == "enemy") // 충돌 대상이 적 태그를 가지고 있으면 { EnemyInfomation enemyScript = coll.GetComponentInParent <EnemyInfomation>(); // 적 스크립트를 받아와서 enemyScript.attacted(30); // 30데미지 부여 } }
private void OnTriggerEnter(Collider coll) { if (coll.gameObject.tag == "enemy") // 충돌 대상이 적 태그를 가지고 있으면 { EnemyInfomation enemyScript = coll.GetComponentInParent <EnemyInfomation>(); // 적 스크립트를 받아와서 enemyScript.attacted(1 * CharacterInfoManager.instance.m_iCurStr); // 1배율의 데미지 부여 } }