zoukankan      html  css  js  c++  java
  • 通过移动相机位置使观察对象与鼠标对齐

    MoveCameraAlignMouse.cs
    using UnityEngine;
    /// <summary>
    /// 通过移动相机位置使观察对象与鼠标对齐
    /// </summary>
    public class MoveCameraAlignMouse:MonoBehaviour{
    	//观察对象的Transform
    	public Transform objTransform;
    	//主相机
    	private Camera cam;
    	//观察对象与相机的z轴距离
    	private float dz;
    
    	private void Start(){
    		cam=Camera.main;
    		//计算观察对象与相机的z轴距离
    		Vector3 objWorldPos=objTransform.position;
    		dz=objWorldPos.z-cam.transform.position.z;
    	}
    
    	private void Update(){
    		if(Input.GetMouseButton(0)){
    			//相机绕观察对象旋转任意角度
    			cam.transform.RotateAround(objTransform.position,new Vector3(Random.value,Random.value,Random.value),10);
    			//观察对象的位置
    			Vector3 objWorldPos=objTransform.position;
    			//计算鼠标位置的世界坐标(将通过移动相机位置使观察对象与鼠标对齐)
    			Vector2 targetScreenPos=Input.mousePosition;
    			Vector3 targetWorldPos=cam.ScreenToWorldPoint(new Vector3(targetScreenPos.x,targetScreenPos.y,dz));
    			//相机需要偏移的向量
    			Vector3 offsetWorld=objWorldPos-targetWorldPos;
    			cam.transform.Translate(offsetWorld,Space.World);
    		}
    	}
    
    }
    
  • 相关阅读:
    poj 2312 Battle City
    poj 2002 Squares
    poj 3641 Pseudoprime numbers
    poj 3580 SuperMemo
    poj 3281 Dining
    poj 3259 Wormholes
    poj 3080 Blue Jeans
    poj 3070 Fibonacci
    poj 2887 Big String
    poj 2631 Roads in the North
  • 原文地址:https://www.cnblogs.com/kingBook/p/12301400.html
Copyright © 2011-2022 走看看