Unity3D中Camera类ScreenToViewportPoint方法使用解析

2.2.4 ScreenToViewportPoint方法:坐标系转换

基本语法:public Vector3 ScreenToViewportPoint(Vector3 position);

其中参数position为屏幕参考点。

功能说明:此方法的功能是实现坐标点position从屏幕坐标系向摄像机视口的单位化坐标系转换。参考点position的x和y分量为屏幕的实际坐标值,单位为像素,z值无效。

实例演示:下面通过实例演示方法ScreenToViewportPoint的使用。

using UnityEngine;
using System.Collections;

public class ScreenToViewportPoint_ts : MonoBehaviour
{
    void Start()
    {
        transform.position = new Vector3(0.0f, 0.0f, 1.0f);
        transform.rotation = Quaternion.identity;
        //从屏幕的实际坐标点向视口的单位化比例值转换
        Debug.Log("1:" + camera.ScreenToViewportPoint(new Vector3(Screen.width / 2.0f, Screen.height / 2.0f, 100.0f)));
        //从视口的单位化比例值向屏幕的实际坐标点转换
        Debug.Log("2:" + camera.ViewportToScreenPoint(new Vector3(0.5f, 0.5f, 100.0f)));
        Debug.Log("屏幕宽:" + Screen.width + "  屏幕高:" + Screen.height);
    }
}

在这段代码中,首先重置了摄像机的position和rotation,然后调用方法ScreenToViewportPoint将屏幕的正中间位置转换为视口比例值并打印出来,接着调用方法ViewportToScreenPoint将视口的中间位置转换为屏幕的实际像素值并打印出来,最后打印出了屏幕的宽度和高度,程序运行结果如图2-12所示。

本文章内容摘自图书《Unity API解析》,源码下载地址:http://www.ituring.com.cn/book/1474

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值