Ejemplo n.º 1
0
    // Update is called once per frame
    void Update()
    {
        Debug.DrawLine(transform.position, transform.position + transform.forward * 1000, Color.red);
        if (Physics.Raycast(transform.position, transform.forward, out var hit))
        {
            var wall = hit.transform.gameObject.GetComponent <TriggerObject>();
            Debug.Log(hit.transform.gameObject);
            if (wall != null)
            {
                if (wall != hitWall)
                {
                    wall.OnLaserOver();
                    if (hitWall != null)
                    {
                        hitWall.OnLaserOut();
                    }
                    hitWall = wall;
                }
            }
            else if (hitWall != null)
            {
                hitWall.OnLaserOut();
                hitWall = null;
            }
        }
        else if (hitWall != null)
        {
            hitWall.OnLaserOut();
            hitWall = null;
        }

        if (Trigger.GetStateDown(HandType) && hitWall != null)
        {
            hitWall.OnTrigger();
        }
    }