Vector3 GetRetreatPos(Vector3 TargetPos, Transform selfTrans, float minr, float maxr) { Vector3 selfPos = selfTrans.position; Vector3 dir = (selfPos - TargetPos).normalized; Vector3 retreat = PEUtil.GetRandomPosition(selfTrans.position, dir, minr, maxr, -90.0f, 90.0f); if (PEUtil.CheckPositionUnderWater(retreat) || PEUtil.CheckPositionInSky(retreat)) { dir = Random.value > 0.5 ? selfTrans.right : -selfTrans.right; retreat = selfPos + dir * 20.0f; } // Vector3 newpos; // if(AiUtil.GetNearNodePosWalkable(retreat,out newpos)) // { // return newpos; // } return(retreat); }