zoukankan      html  css  js  c++  java
  • unity获取相机视窗口大小


    using UnityEngine; using System.Collections; public class CameraView : MonoBehaviour { private Camera theCamera; //距离摄像机8.5米 用黄色表示 public float upperDistance = 8.5f; //距离摄像机12米 用红色表示 public float lowerDistance = 12.0f; private Transform tx; void Start (){ if ( !theCamera ) { theCamera = Camera.main; } tx = theCamera.transform; } void Update (){ FindUpperCorners(); FindLowerCorners(); } void FindUpperCorners (){ Vector3[] corners = GetCorners( upperDistance ); // for debugging Debug.DrawLine( corners[0], corners[1], Color.yellow ); // UpperLeft -> UpperRight Debug.DrawLine( corners[1], corners[3], Color.yellow ); // UpperRight -> LowerRight Debug.DrawLine( corners[3], corners[2], Color.yellow ); // LowerRight -> LowerLeft Debug.DrawLine( corners[2], corners[0], Color.yellow ); // LowerLeft -> UpperLeft } void FindLowerCorners (){ Vector3[] corners = GetCorners( lowerDistance ); // for debugging Debug.DrawLine( corners[0], corners[1], Color.red ); Debug.DrawLine( corners[1], corners[3], Color.red ); Debug.DrawLine( corners[3], corners[2], Color.red ); Debug.DrawLine( corners[2], corners[0], Color.red ); } Vector3[] GetCorners ( float distance ){ Vector3[] corners = new Vector3[ 4 ]; float halfFOV = ( theCamera.fieldOfView * 0.5f ) * Mathf.Deg2Rad; float aspect = theCamera.aspect; float height = distance * Mathf.Tan( halfFOV ); float width = height * aspect; // UpperLeft corners[ 0 ] = tx.position - ( tx.right * width ); corners[ 0 ] += tx.up * height; corners[ 0 ] += tx.forward * distance; // UpperRight corners[ 1 ] = tx.position + ( tx.right * width ); corners[ 1 ] += tx.up * height; corners[ 1 ] += tx.forward * distance; // LowerLeft corners[ 2 ] = tx.position - ( tx.right * width ); corners[ 2 ] -= tx.up * height; corners[ 2 ] += tx.forward * distance; // LowerRight corners[ 3 ] = tx.position + ( tx.right * width ); corners[ 3 ] -= tx.up * height; corners[ 3 ] += tx.forward * distance; return corners; } }

      转载自:https://www.xuanyusong.com/archives/3036

  • 相关阅读:
    css 移动端像素,rem适配详解
    css,图片和文字在父元素垂直居中,且图片和文字在中线对齐排列的几种方式
    css弹性盒子桃园三兄弟之:flexgrow、flexshrink、flexbasis详解
    less的基本使用
    css 利用flex居中对齐
    css 高度塌陷和外边距折叠问题详解,(BFC)
    HTML行内元素、块状元素、行内块状元素的区别
    css flex弹性布局学习总结
    shell学习笔记
    Ant入门教程
  • 原文地址:https://www.cnblogs.com/mttnor/p/9647850.html
Copyright © 2011-2022 走看看