- Home /
iTween Path changing
Hello All,
I am using an iTween Script to fly my Camera through a space
(I use a 'flythroughCameraController' script to manage the movement and also where the camera looks, each of which is an array of points with visual gizmos)
It's brilliant for touch screen
But I want to have multiple paths like this in the same scene
and let you switch back and forth when you click on something.
What I think would work is to attach the different Paths to the camera (with their Move[] & Look [] points) in one script
and in another MouseUp() on OnTriggerEnter() script witch between the paths.
Sounds simple But won't work for me
Here is the CAMERA Script:
public class FlythroughCameraController3 : MonoBehaviour {
// THIS IS FOR PATH TO PATH MOVEMENT
// Path
public Transform[] movePath;
public Transform[] lookPath;
public Transform lookTarget;
public float percentage;
//public Transform[] path;
public float speed = 0.1f;
//Path 1
public Transform[] movePath_1;
public Transform[] lookPath_1;
public Transform lookTarget_1;
////Path 2
// public Transform[] movePath_2;
// public Transform[] lookPath_2;
// public Transform lookTarget_2;
// Variable to be Passed for NewPath
public Transform[] newMovePath;
public Transform[] newLookPath;
void Start(){
//SET THE NEW(move&Look)PATHS TO BE THE MAIN PATHS
newMovePath = movePath;
newLookPath = lookPath;
// OnDrawGizmos();
}
// TOUCH CONTROL
void Update () {
if (Input.touchCount > 0) {
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Moved) {
percentage += touch.deltaPosition.x * speed / Screen.height;
percentage = Mathf.Clamp01(percentage);
iTween.PutOnPath(gameObject,newMovePath,percentage);
iTween.PutOnPath(lookTarget,newLookPath,percentage);
transform.LookAt(iTween.PointOnPath(newLookPath,percentage));
}
}
//KEYBOARD CONTROL
if(Input.GetKey(KeyCode.UpArrow))
{
percentage += speed * Time.deltaTime;
}
if(Input.GetKey(KeyCode.DownArrow))
{
percentage -= speed * Time.deltaTime;
}
percentage = Mathf.Clamp01(percentage);
iTween.PutOnPath(gameObject,newMovePath,percentage);
iTween.PutOnPath(lookTarget,newLookPath,percentage);
transform.LookAt(iTween.PointOnPath(newLookPath,percentage));
}
//VISIBLE GIZMOS:
void OnDrawGizmos(){
iTween.DrawPath(movePath,Color.magenta);
iTween.DrawPath(lookPath,Color.cyan);
Gizmos.color=Color.black;
Gizmos.DrawLine(transform.position,lookTarget.position);
// iTween.DrawPath(newMovePath,Color.magenta);
// iTween.DrawPath(newLookPath_1,Color.cyan);
}
}
Here is the MOUSEUP switcher Script:
public class changePath : MonoBehaviour {
public Transform movePath;
public Transform lookPath;
public Transform newMovePath;
public Transform newLookPath;
// public float percentage;
void OnMouseUp () {
movePath = newMovePath;
lookPath = newLookPath;
}
}
The Logic of this is evading me I know there is a simple way
Im not sure why the variables "newMovePath" & "newLookPath" aren't being passed It might have to do with Array V Transform
Thanks for helping !
~be
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
iTween RotateTo 1 Answer
Illuminating a 3D object's edges OnMouseOver (script in c#)? 1 Answer