Please watch this video and tell me a fix. Thanks.
The boolean flag must become false when my camera reaches its final position. Currently, the flag becomes true and remains true. I need to find a way where when my camera moves to its first destination the flag becomes false and so on.
Here is the code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class camMOVE : MonoBehaviour {
public Transform handleview;
public Transform pressureview;
public Transform wallview;
public Transform sechandleview;
public Transform pressuretwoview;
public Transform switchview;
public GameObject handlebtn;
public GameObject pressurebtn;
public GameObject wallbtn;
public GameObject handletwobtn;
public GameObject pressuretwobtn;
public GameObject switchbtn;
public float transitionSPEED;
Transform currentVIEW;
public bool flag = false;
public bool isReached = false;
Vector3 currentangel;
public List<GameObject> modelparts;
private void Start(){
handlebtn.SetActive (true);
pressurebtn.SetActive (false);
wallbtn.SetActive (false);
handletwobtn.SetActive (false);
pressuretwobtn.SetActive (false);
switchbtn.SetActive (false);
foreach (GameObject obj in modelparts) {
obj.GetComponent<BoxCollider> ().enabled = false;
}
}
private void Update(){
if (flag ) {
transform.position = Vector3.Lerp (transform.position,
currentVIEW.position, Time.deltaTime * transitionSPEED);
//for camera rotation
currentangel = new Vector3 (Mathf.LerpAngle
(transform.rotation.eulerAngles.x,
currentVIEW.transform.rotation.eulerAngles.x, Time.deltaTime *
transitionSPEED),
Mathf.LerpAngle (transform.rotation.eulerAngles.y,
currentVIEW.transform.rotation.eulerAngles.y, Time.deltaTime *
transitionSPEED),
Mathf.LerpAngle (transform.rotation.eulerAngles.z,
currentVIEW.transform.rotation.eulerAngles.z, Time.deltaTime *
transitionSPEED));
transform.eulerAngles = currentangel;
}
}
public void Handleview(){
currentVIEW = handleview;
handlebtn.SetActive (false);
flag = true;
}
public void Pressureview() {
currentVIEW = pressureview;
pressurebtn.SetActive (false);
flag = true;
}
public void Wallview() {
currentVIEW = wallview;
wallbtn.SetActive (false);
flag = true;
}
public void Secondhandleview(){
currentVIEW = sechandleview;
handletwobtn.SetActive (false);
flag = true;
}
public void Pressuretwoview(){
currentVIEW = pressuretwoview;
pressuretwobtn.SetActive (false);
flag = true;
}
public void Switchview(){
currentVIEW = switchview;
switchbtn.SetActive (false);
flag = true;
}
}