Example #1
0
 private void Awake()
 {
     m_photonView      = GetComponent <PhotonView>();
     m_unitBehaviour   = GetComponent <UnitBehaviour>();
     m_unitMovement    = GetComponent <UnitMovement>();
     m_unitShooting    = GetComponent <UnitShooting>();
     m_unitFieldOfView = GetComponent <UnitFieldOfView>();
 }
 private void Init()
 {
     _fieldOfView       = GetComponentInChildren <UnitFieldOfView>();
     _light2D           = GetComponentInChildren <Light2D>();
     _enemyUnit         = GetComponent <EnemyUnit>();
     _noise             = FindObjectOfType <UnitNoise>(); //Get Player component
     _noise.NoiseEvent += SetChaseAndAttack;
     SetState(new StartState(this));
 }
    private void OnSceneGUI()
    {
        UnitFieldOfView fov = (UnitFieldOfView)target;

        Handles.color = Color.red;
        Handles.DrawWireArc(fov.transform.position, Vector3.up, Vector3.forward, 360, fov.ViewRadius);

        Vector3 viewAngleA = fov.DirFromAngle(-fov.ViewAngle * 0.5f, false);
        Vector3 viewAngleB = fov.DirFromAngle(fov.ViewAngle * 0.5f, false);

        Handles.DrawLine(fov.transform.position, fov.transform.position + viewAngleA * fov.ViewRadius);
        Handles.DrawLine(fov.transform.position, fov.transform.position + viewAngleB * fov.ViewRadius);
    }
    void OnSceneGUI()
    {
        UnitFieldOfView fow = (UnitFieldOfView)target;

        //Line Radius
        Handles.color = Color.white;
        Handles.DrawWireArc(fow.transform.position, Vector3.forward, Vector3.up, 360, fow.viewRadius);

        //Line Angle
        Vector3 viewAngleA = fow.DirFromAngle(-fow.viewAngle / 2, false);
        Vector3 viewAngleB = fow.DirFromAngle(fow.viewAngle / 2, false);

        Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleA * fow.viewRadius);
        Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleB * fow.viewRadius);

        //Line VisibleTargets
        Handles.color = Color.red;
        foreach (Transform visibleTarget in fow.visibleTargets)
        {
            Handles.DrawLine(fow.transform.position, visibleTarget.position);
        }
    }