I have a cone shape with 3 raycasts, but the enemy only detect the player if the player is in either one of the 3 lines, i wanted to add more raycast to the enemy. I have ask around, some said to add more raycast with for loop, but im not familiar with raycasting, so i need help. the photo attachment below is what i have right now and what i want the ai raycast to be.
using System.Collections;![126389-airaycast.png|1494x740](upload://l3zwQVqeDzbt1ZuWPjMFTHM9bKB.png)
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class enemyControl : MonoBehaviour
{
Ray enemyRay;
public Color rayColor;
RaycastHit rayHit;
bool follow;
public float sightDist;
private float timer = 0f;
public float heightMultiplier;
private Vector3 investigateSpot;
public float visionAngle;
private NavMeshAgent agent;
public GameObject him;
void Start()
{
agent = GetComponent<NavMeshAgent>();
him = GameObject.FindGameObjectWithTag("Player");
heightMultiplier = 1.36f;
}
void Update()
{
timer += Time.deltaTime;
enemyRay = new Ray(transform.position, transform.forward * sightDist);
Debug.DrawRay(transform.position + Vector3.up * heightMultiplier, transform.forward* sightDist, rayColor);
Debug.DrawRay(transform.position + Vector3.up * heightMultiplier, (transform.forward + transform.right).normalized * sightDist, rayColor);
Debug.DrawRay(transform.position + Vector3.up * heightMultiplier, (transform.forward - transform.right).normalized * sightDist, rayColor);
if (Physics.Raycast(transform.position + Vector3.up * heightMultiplier, transform.forward, out rayHit, sightDist))
{
if (rayHit.collider.gameObject.tag == "Player")
{
agent.SetDestination(him.transform.position);
him = rayHit.collider.gameObject;
}
}
if (Physics.Raycast(transform.position + Vector3.up* heightMultiplier, (transform.forward + transform.right).normalized, out rayHit, sightDist))
{
if (rayHit.collider.gameObject.tag == "Player")
{
agent.SetDestination(him.transform.position);
him = rayHit.collider.gameObject;
}
}
if (Physics.Raycast(transform.position + Vector3.up* heightMultiplier, (transform.forward - transform.right).normalized, out rayHit, sightDist))
{
if (rayHit.collider.gameObject.tag == "Player")
{
agent.SetDestination(him.transform.position);
him = rayHit.collider.gameObject;
}
}
}
void OnTriggerEnter(Collider coll)
{
if (coll.tag == "Player")
{
agent.SetDestination(him.transform.position);
him = coll.gameObject;
}
}
}