// 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(); }
// 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(); }); }
//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(); }
//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); } } }