예제 #1
0
    // Use this for initialization
    public void Init()
    {
        // position the plane at the start point
        GameObject start = GameObject.FindGameObjectWithTag("Start");

        rotValSlider   = GameObject.FindGameObjectWithTag("PlaneRotationSlider").GetComponent <Slider>();
        powerValSlider = GameObject.FindGameObjectWithTag("PlaneThrowPowerSlider").GetComponent <Slider>();
        flyButton      = GameObject.FindGameObjectWithTag("GameController").GetComponent <Button>();
        planeHolder    = GameObject.FindGameObjectWithTag("PlaneHolder");

        fpScript = Camera.main.GetComponent <FlyingPaper>();

        planeStartPosition = new Vector3(start.transform.position.x - 3, start.transform.position.y - 4, 2.5f);
        planeStartRotation = gameObject.transform.rotation;

        gameObject.transform.position = planeStartPosition;

        holderStartPosition = planeHolder.transform.position;
        holderStartRotation = planeHolder.transform.rotation;

        fpScript.SetStartPosition(holderStartPosition, planeStartPosition);
        fpScript.SetStartRotation(holderStartRotation, planeStartRotation);

        rb = this.GetComponent <Rigidbody>();

        rb.constraints = RigidbodyConstraints.FreezeAll;
        finished       = false;


        _sensitivity = 0.6f;
        _rotation    = Vector3.zero;

        RotatePlaneWithSlider();
    }
예제 #2
0
    // Use this for initialization
    void Awake()
    {
        // position the plane at the start point
        GameObject start = GameObject.FindGameObjectWithTag("Start");

        rotValSlider   = GameObject.FindGameObjectWithTag("PlaneRotationSlider").GetComponent <Slider>();
        powerValSlider = GameObject.FindGameObjectWithTag("PlaneThrowPowerSlider").GetComponent <Slider>();
        flyButton      = GameObject.FindGameObjectWithTag("GameController").GetComponent <Button>();
        planeHolder    = GameObject.FindGameObjectWithTag("PlaneHolder");

        fpScript = Camera.main.GetComponent <FlyingPaper>();

        planeStartPosition = new Vector3(start.transform.position.x - 3, start.transform.position.y - 4, 2.5f);
        planeStartRotation = gameObject.transform.rotation;

        gameObject.transform.position = planeStartPosition;

        holderStartPosition = planeHolder.transform.position;
        holderStartRotation = planeHolder.transform.rotation;

        fpScript.SetStartPosition(holderStartPosition, planeStartPosition);
        fpScript.SetStartRotation(holderStartRotation, planeStartRotation);

        rb = this.GetComponent <Rigidbody>();

        rb.constraints = RigidbodyConstraints.FreezeAll;
        finished       = false;

        rotValSlider.value   = 0f;
        powerValSlider.value = 0;

        rotValSlider.GetComponentInChildren <Slider>().onValueChanged.AddListener(delegate { RotatePlaneWithSlider(); });
        powerValSlider.GetComponentInChildren <Slider>().onValueChanged.AddListener(delegate { ChangePlaneThrowSpeed(); });
        flyButton.GetComponentInChildren <Button>().onClick.AddListener(delegate { BeginFlight(); });
    }
예제 #3
0
 //Activate or deactivate vent when clicked
 private void OnMouseDown()
 {
     Debug.Log("Vent Clicked");
     ventActive = !ventActive;
     powSlider.SetActive(ventActive);
     arrowContainer.SetActive(ventActive);
     rotLeft.SetActive(ventActive);
     rotRight.SetActive(ventActive);
     arrowBot.GetComponent <Collider>().enabled = true;
     fpScript = Camera.main.GetComponent <FlyingPaper>();
     fpScript.playVentSound();
 }
예제 #4
0
    //This is responsible for making the teleporter work
    public void OnTriggerEnter(Collider col)
    {
        fpScript = Camera.main.GetComponent <FlyingPaper>(); //access flyingpaper script
        fpScript.PlayTeleportSound();                        //plays teleporter sound

        Vector3 planerot = plane.transform.localEulerAngles; //gets plane rotation
        bool    isPlaneForward;                              //used to determine if plane is facing towards the right of the screen;

        //setup rigidbody for physics
        Rigidbody rb;

        rb = plane.GetComponent <Rigidbody>();

        //determine direction of plane flight to decide which way to send out of teleporter.
        if (rb.velocity.x < 0)
        {
            isPlaneForward = true;
            Debug.Log("Plane pointed right");
        }
        else
        {
            isPlaneForward = false;
            Debug.Log("Plane pointed left");
        }

        //send out of teleporter based on direction of plane flight and direction receiver node is facing.
        if (isPlaneForward && pointedRight || !isPlaneForward && !pointedRight)
        {
            //Teleport Plane
            plane.transform.position = receiver.transform.position;
            plane.transform.position = new Vector3(receiver.transform.position.x + teleXOffset, receiver.transform.position.y + teleYOffset, receiver.transform.position.z);
        }
        else if (isPlaneForward && !pointedRight || !isPlaneForward && pointedRight)
        {
            //Teleport Plane
            plane.transform.position = receiver.transform.position;
            plane.transform.position = new Vector3(receiver.transform.position.x + teleXOffset, receiver.transform.position.y + teleYOffset, receiver.transform.position.z);

            //switch plane flight direction
            rb.velocity = new Vector3(rb.velocity.x * -1, rb.velocity.y, rb.velocity.z);
            if (pointedRight)
            {
                plane.transform.localEulerAngles = new Vector3(-5, -90, -15);
            }
            else
            {
                plane.transform.localEulerAngles = new Vector3(-5, -90, -15);
            }
        }
    }