现在的位置: 首页 > 综合 > 正文

Unity3D【脚本】点击物体后屏幕放大 – (射线、坐标的转换、摄像机的移动和改变属性)

2018年08月27日 ⁄ 综合 ⁄ 共 1613字 ⁄ 字号 评论关闭
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;
	}
}

源代码是可以运行的,但我优化了下源代码,然后脚本没有测试过。

抱歉!评论已关闭.