将一个设置好的路径作为预设,其配置如图(第一个脚本是总控制开关,第二个是路径点的集合)
Animate Object 设为 MainCamera

由于游戏中一个路径可能被多次复用,并且镜头注视的物件可能不一样,所以需要另外一个path Manager脚本来负责所有path的实例化,在实例化时设定path的一些属性。
pathManager脚本
public class PathManager : MonoBehaviour {
public GameObject pathPrefab;
public GameObject target;
private GameObject path;
private CameraPathBezier bezier;
CameraPathBezierAnimator bezierAni;
public void onClick(){
//pathPrefab可以通过一个switch case获得,根据游戏需要调用不同的pathPrefab
path = Instantiate (pathPrefab, Vector3.zero, Quaternion.identity) as GameObject;
//实例化之后获得物件上的两个脚本
bezier = path.GetComponent<CameraPathBezier> ();
bezierAni = path.GetComponent<CameraPathBezierAnimator> ();
//设置look at target属性,target可以通过GameObject.Find找到
bezier.target = target;
/*bezierAni.gameObject.SetActive (false);
if (!bezierAni.gameObject.activeInHierarchy) {
bezierAni.gameObject.SetActive (true);
float i = Random.value;
if (i > 0.5) {
GameObject.Destroy (bezierAni.gameObject);
}
} */
}
}
网友评论