出现的问题

也就是说,即使获取了屏幕相关信息及参数,也无法把信息转换成可在editor中使用的信息。当时想在做Protect The Red 。

于是,就开始了自己的谷歌之旅。

在StackExchange和Unity Answers上翻了翻,最终搞懂了,大致思路是这样的。

解决思路

  1. 获取Viewport里的右上角(z=Mathf.Abs(Camera.main.transform.position.z))
  2. 使用ViewportToWorldPoint 将Vieport坐标转化为WordlPoint,游戏世界里的位置

代码实现

    [HideInInspector]public float leftBorder;
[HideInInspector]public float rightBorder;
[HideInInspector]public float topBorder;
[HideInInspector]public float downBorder;
    private float width;
    private float height;     void SetBasicValues(){
               //the up right corner
        Vector3 cornerPos=Camera.main.ViewportToWorldPoint(new Vector3(1f,1f,
                                                                       Mathf.Abs(-Camera.main.transform.position.z)));
        
        leftBorder=Camera.main.transform.position.x-(cornerPos.x-Camera.main.transform.position.x);
        rightBorder=cornerPos.x;
        topBorder=cornerPos.y;
        downBorder=Camera.main.transform.position.y-(cornerPos.y-Camera.main.transform.position.y);         width=rightBorder-leftBorder;
        height=topBorder-downBorder;     }

成果--守住红色

最终的结果是这样的,墙壁游戏运行后一直处在屏幕的四边。将小球控制在屏幕内。

     

APK Download

Google Play

[Unity3D] 如何识别屏幕边缘的更多相关文章

  1. iOS七大手势之(平移、捏合、轻扫、屏幕边缘轻扫)手势识别器方法

    使用手势很简单,分为两步: 创建手势实例.当创建手势时,指定一个回调方法,当手势开始,改变.或结束时,回调方法被调用. 添加到需要识别的View中.每个手势只对应一个View,当屏幕触摸在View的边 ...

  2. Unity3D NGUI自适应屏幕分辨率(2014/4/17更新)

    原地址:http://blog.csdn.net/asd237241291/article/details/8126619 原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 本文链接地址: ...

  3. C# WPF 如何禁止窗口拖到屏幕边缘自动最大化

    win7以上的系统新增了功能--窗口拖到屏幕边缘自动最大化

  4. C# WinForm 类似QQ靠近屏幕边缘隐藏显示

    当窗体离屏幕四周一定距离时,改变窗体位置,引导窗体靠边:靠边后,当鼠标离开窗体时,改变窗体位置,窗体隐藏,凸出一点在屏幕内:隐藏后,当鼠标移到窗体时,窗体显示. using System; using ...

  5. Unity3D Android手机屏幕分辨率问题

    Android手机屏幕分辨率五花八门,导致开发时不好把握,还好各个引擎对这个屏幕分辨率问题都有较好的处理方式:unity3D 也为我们提供了一个不错的解决方案. 在Unity3D 进行 android ...

  6. unity3d点击屏幕选中物体

    原文  http://blog.csdn.net/mycwq/article/details/19906335 前些天接触unity3d,想实现点击屏幕选中物体的功能.后来研究了下,实现原理就是检测从 ...

  7. unity3d之在屏幕上画线

    如何在屏幕上画线,简单的代码如下: using UnityEngine; public class Test : MonoBehaviour { void OnGUI() { GL.LoadOrtho ...

  8. 修改navigationbar右侧按钮离屏幕边缘位置

    先上代码 UIButton *settingBtn = [Utils creatCustomButtonWithFrame:CGRectMake(, , , ) btnTitle: titleColo ...

  9. C# 窗体靠近屏幕边缘自动隐藏*学习(类似于QQ)

    using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; us ...

随机推荐

  1. 292C Beautiful IP Addresses

    传送门 题目 The problem uses a simplified TCP/IP address model, please read the statement carefully. An I ...

  2. 【转】Eclipse 插件 —— RunJettyRun 的安装与使用

    http://www.th7.cn/Program/java/201309/148299.shtml          关于 Jetty 与 Eclipse 的集成,网上很多都是使用 Eclipse ...

  3. sqlserver2012——SqlCommand创建对象的三种方法

    1.使用不带参构造函数 SqlCommand cmd = new SqlCommand(); cmd.Connection = SqlConnnection对象: cmd.CommandText=Sq ...

  4. ES 6.1.2集群安装

    1.下载java,并设置环境变量 sudo tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/local/ sudo vim /etc/profile 在最后添 ...

  5. java学习笔记——基于Robot类的屏幕分享

    直接上代码,具体看注释: package robot; import java.awt.AWTException; import java.awt.Dimension; import java.awt ...

  6. 洛谷P1034 矩形覆盖

    P1034 矩形覆盖 题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4( ...

  7. java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.github.pagehelper.Page

    出现这个错误,首先看配置mybatis-config.xml中的<plugins> <plugin interceptor="com.github.pagehelper.P ...

  8. vue 生产模式

    vue.js 最后一行添加... Vue.config.productionTip = false;

  9. Angular学习笔记 ——input 标签上的【name属性】和【ngModelOptions属性】

    利用“@angular/forms" 创建<form>表单的时候,系统默认会创建一个”FormGroup"的对象. 使用带有“ngModel"的”<in ...

  10. redis常用

    redis的key和string类型value限制均为512MB