using UnityEngine;
using System.Collections;
public class DParaticle : MonoBehaviour {
//摄像机
public GameObject camera_1;
Vector3 p;
Quaternion r;
Vector3 s;
//目标物体
public GameObject target1, target2, target3, target4, target5;
bool target1Bool,target2Bool,target3Bool,target4Bool,target5Bool;
void Start () {
//保存摄像机初始位置
p=camera_1.transform.position;
r=camera_1.transform.rotation;
s=camera_1.transform.localScale;
}
void Update () {
if(Input.GetMouseButton(0)){
Ray ray = camera_1.camera.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit)){
if(hit.collider.gameObject==target1){
if (!target1Bool) {
camera_1.transform.LookAt(target1.transform);
camera_1.camera.orthographicSize=3.0f;
}else{
first ();
}
target1Bool =! target1Bool;
}else if(hit.collider.gameObject==target2){
if(!target2Bool){
//camera_1.transform.LookAt(target2.transform);
camera_1.camera.orthographicSize=3.0f;
}else{
first ();
}
target2Bool=!target2Bool;
}else if(hit.collider.gameObject==target3){
if(!target3Bool){
camera_1.transform.LookAt(target3.transform);
camera_1.camera.orthographicSize=3.0f;
}else{
first ();
}
target3Bool=!target3Bool;
}else if(hit.collider.gameObject==target4){
if(!target4Bool){
camera_1.transform.LookAt(target4.transform);
camera_1.camera.orthographicSize=3.0f;
}else{
first ();
}
target4Bool=!target4Bool;
}else if(hit.collider.gameObject==target5){
if(!target5Bool){
camera_1.transform.LookAt(target5.transform);
camera_1.camera.orthographicSize=3.0f;
}else{
first ();
}
target5Bool=!target5Bool;
}
}
}
}
void first () {
camera_1.transform.position=p;
camera_1.transform.rotation=r;
camera_1.transform.localScale=s;
camera_1.camera.orthographicSize=13.1f;
}
}
源代码是可以运行的,但我优化了下源代码,然后脚本没有测试过。