Exemplo n.º 1
0
    private void ShootRay()
    {
        Debug.DrawRay(transform.position, transform.forward * 10.0f, Color.green);
        //Debug.DrawRay(transform.position + new Vector3(0.0f, 0.0f, 0.25f), transform.forward * 10.0f, Color.green);
        //Debug.DrawRay(transform.position + new Vector3(0.0f, 0.0f, -0.25f), transform.forward * 10.0f, Color.green);

        RaycastHit windRay;

        // does this work to get multiple rays?
        if (Physics.Raycast(transform.position, transform.forward, out windRay, 100.0f))
        {
            if (windRay.collider.CompareTag("Bee Enemy"))
            {
                Destroy(windRay.collider.gameObject);
            }
            if (windRay.collider.attachedRigidbody != null)
            {
                if (windRay.collider.GetComponent <MoveByWind>())
                {
                    windArea = windRay.collider.gameObject;
                    windArea.GetComponent <Rigidbody>().AddForce(transform.forward * windForce);

                    if (windRay.collider.GetComponent <Player_v5>())
                    {
                        Player_v5 player = windRay.collider.GetComponent <Player_v5>();

                        // limit movement speed
                        player.moveSpeed = 0.0f;

                        // set player falling
                        //player.bPlayerFalling = true;

                        // turn off collision with invisible wall
                        player.gameObject.layer = 10;
                    }
                }
            }
        }

        // raycast through pitfall triggers
        //RaycastHit[] hits;
        //hits = Physics.RaycastAll(transform.position, transform.forward, 100.0f);
        //for (int i = 0; i < hits.Length; i++)
        //{
        //    RaycastHit hit = hits[i];

        //    if (hit.transform.gameObject.layer == 8)
        //    {
        //        //Debug.Log("Turbine::FixedUpdate(), RaycastAll[] hit stone block");
        //        return;
        //    }

        //    if (hit.collider.GetComponent<MoveByWind>()) {
        //        //Debug.Log("Turbine::FixedUpdate(), RaycastAll[]");
        //        windArea = hit.collider.gameObject;
        //        windArea.GetComponent<Rigidbody>().AddForce(transform.forward * windForce);
        //        //return;
        //    }
        //}
    }
Exemplo n.º 2
0
    private void Awake()
    {
        rb     = GetComponent <Rigidbody>();
        player = GameObject.FindObjectOfType <Player_v5>();

        // setup fade colors
        oldColor    = gameObject.GetComponent <MeshRenderer>().material.color;
        fadeColor   = gameObject.GetComponent <MeshRenderer>().material.color;
        fadeColor.a = 0.0f;
    }