Beispiel #1
0
    void OnDrawGizmos()
    {
        Gizmos.color = Color.red;
        foreach (var actor in WorldGrid.GetAllActorsOfType(ActorType.Enemy))
        {
            RaycastHit hit;

            if (Physics.Raycast(new Ray(transform.position, actor.transform.position - transform.position), out hit, 100f))
            {
                if (hit.transform.gameObject == actor.gameObject)
                {
                    Gizmos.DrawRay(transform.position, actor.transform.position - transform.position);
                }
            }
            //Gizmos.DrawLine(transform.position, actor.transform.position);
        }
    }
Beispiel #2
0
 // Update is called once per frame
 void Update()
 {
     foreach (var actor in WorldGrid.GetAllActorsOfType(ActorType.Enemy))
     {
         RaycastHit hit;
         Physics.Raycast(new Ray(transform.position, actor.transform.position - transform.position), out hit, 100f);
         if (hit.transform.gameObject == actor.gameObject && Time.time > last + FireInterval)
         {
             GameObject bullet =
                 Instantiate(Resources.Load(Projectile), transform.position, Quaternion.identity) as
                 GameObject;
             bullet.transform.LookAt(actor.transform.position);
             last      = Time.time;
             heading.x = (float)((r.NextDouble() * 2.0f) - 1.0f);
             heading.y = (float)((r.NextDouble() * 2.0f) - 1.0f);
             heading.z = (float)((r.NextDouble() * 2.0f) - 1.0f);
             heading.Normalize();
             Destroy(bullet, 10);
         }
     }
 }