出现的问题

也就是说,即使获取了屏幕相关信息及参数,也无法把信息转换成可在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. leetcode:7. Reverse Integer

    这题简单,也花了我好长时间,我自己写的code比较麻烦,也没啥技巧:按正负性分类执行,先转化成字符串,用stringbuilder进行旋转,如果超出范围了就用try catch public int ...

  2. NPM run start使用本地的http-server

    在项目开发过程中,Visual Studio 2015 一个Solution中有一个前端项目 Myproject.FrontEnd,我们使用node.js, npm来进行管理 在这个项目中,有一个pa ...

  3. hdu1073

    #include<iostream> using namespace std; #define N 5050 char a[N],b[N],tmp[N]; void Read(char p ...

  4. C#进行Post请求(解决url过长的问题)

    //实例代码: 1.post请求 private string GetImageXY(string imgbyte) { string result3 = string.Empty; try { st ...

  5. NPOI导出EXCEL部分样式不起作用

    在使用NPOI导出excel的时候,设置cell样式,数据量多余6条之后,在后面几条数据没有样式(边框,对其,换行等). 原因是设置CellStyle的时候把CreateCellStyle放在循环列集 ...

  6. 关于.net Core项目发布在Linux上的填坑

    本文主要记录.net Core项目发布在Linux服务器上面所遇到的问题,防止遗忘是 1.在发布文件中执行 dotnet xxxxxx.dll的时候提示如下错误: An assembly specif ...

  7. jquery事件之事件委托和事件切换

    一.事件委托函数: 方法名 说明 语法 (events 事件类型,data数据,handler 事件处理函数,selector 选择器) live 用于为指定元素的一个或多个事件绑定事件处理函数. j ...

  8. Java实例练习——java实现自动生成长度为10以内的随机字符串(可用于生成随机密码)

    package sorttest; import java.util.ArrayList; import java.util.Collections; import java.util.List; i ...

  9. Cogs 1995. Yukari

    1995. Yukari ★★☆   输入文件:camera.in   输出文件:camera.out   简单对比时间限制:1 s   内存限制:128 MB 题目背景: 幻想乡的创始人之一,八云紫 ...

  10. sys_guid()

    create extension "uuid-ossp"; create or replace function sys_guid() returns uuid as $$sele ...