protected override void SerchTarget() { if (NearTarget != null) { nearTargetHole = NearTarget.GetComponent <Hole>(); } if (nearTargetHole == null && NearTarget != null) { return; } Transform enemyTransform = transform.parent.parent.GetChild(4); nearEnemy = serchTarget.serchChildTag(transform.position, enemyTransform, "Enemy"); //敵が存在していたら if (nearEnemy != null) { NearTarget = nearEnemy; IsMove = true; } else if (nearEnemy == null && NearTarget == null) { StartCoroutine(Delay()); } }
void OnTriggerEnter(Collider col) { BaseBossEnemy boss = col.transform.GetComponent <BaseBossEnemy>(); if (boss != null) { return; } BaseEnemy target = col.transform.GetComponent <BaseEnemy>(); if (target != null && agent.isStopped == false) { NearTarget = target.gameObject; IsStop = true; isAttack = true; } if (NearTarget == null) { return; } Hole colHole = col.GetComponent <Hole>(); Hole targetHole = NearTarget.GetComponent <Hole>(); if (colHole != null && targetHole != null && colHole == targetHole) { NearTarget = null; } }
/// <summary> /// ターゲットとの距離を取得 /// </summary> void TargetDistance() { // ターゲットがいなければ処理しない if (NearTarget == null) { return; } Hole checkHole = NearTarget.GetComponent <Hole>(); if (checkHole != null) { return; } // 自分と相手の距離を取得 Vector3 pos = transform.position; Vector3 targetPos = NearTarget.transform.position; float dis = Vector3.Distance(pos, targetPos); // 距離が一定いないであれば if (dis <= AttackRange) { // 移動を停止、攻撃 IsStop = true; isAttack = true; } }
/// <summary> /// ターゲットとなる畑が感染できたかどうか /// </summary> /// <returns></returns> public bool IsInfection() { if (NearTarget == null) { return(true); } Hole nearHole = NearTarget.GetComponent <Hole>(); if (nearHole != null && nearHole.Infection) { return(true); } return(false); }