国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[Unity3D]如何識別屏幕邊緣

2019-11-14 13:53:20
字體:
來源:轉載
供稿:網友

出現的問題

  • Unity3D中長度單位是米
  • 使用Screen.resolutions獲取的屏幕信息單位是像素

也就是說,即使獲取了屏幕相關信息及參數,也無法把信息轉換成可在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;

    }

 

成果--守住紅色

最終的結果是這樣的,墻壁游戲運行后一直處在屏幕的四邊。將小球控制在屏幕內。

protect the red     

 

APK Download

Google Play

qrcode

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宝山区| 邛崃市| 盐城市| 云南省| 双流县| 濮阳县| 六安市| 泾源县| 枣阳市| 琼结县| 甘南县| 武隆县| 天津市| 墨竹工卡县| 同心县| 保德县| 岢岚县| 安平县| 河北省| 尚义县| 泸溪县| 离岛区| 七台河市| 盐源县| 玉田县| 雅江县| 芜湖县| 海阳市| 惠东县| 甘肃省| 武隆县| 海城市| 徐州市| 湘西| 广安市| 崇左市| 安达市| 西丰县| 霍州市| 商南县| 南澳县|