小屋創作

日誌2014-09-21 17:44

Unity資料蒐集 ─ ScreenToWorldPoint

作者:悠浪貓

被 camera 內所提供的這個 Function 快玩死

搞了一個小時,看了一堆莫名其妙的英文..



ScreenToWorldPoint ( Vector3 position )

功能簡單而強大,提供一個螢幕座標回傳給你世界座標


首先要談談Projection

Camera 物件內有一個參數是 Projection (投影)

也就是如何將世界上的物件投影到你的螢幕上

他有兩種可選的投影方式 Perspective (透視) 和 Orthographic (不會翻!)

Perspective 就是一般 3D 隨遠近而大小的投影方式

而 Orthographic 則是 2D 那樣不管遠近,原汁原味直接貼在螢幕上

雖然我現在是在做2D的遊戲,但我仍然保留拓展至 3D 的變化性,所以我堅持用 Perspective

但這也導致我撞牆撞了一個小時



這和這 Function 有什麼關係呢? 有!差別可大了!

因為我這樣用他 ScreenToWorldPoint ( Input.mousePosition )

然後他就爽爽的一直回傳給我攝影機的 Position ....

但是我只要把攝影機 Projection 改成 Orthographic 就沒問題!

我就這樣查資料鬼打牆查半天才熊熊想到...「我好像沒給他深度值」...

所以只要這樣改

ScreenToWorldPoint ( new Vector3 (Input.mousePosition.x, Input.mousePosition.y, 深度 ));

就沒有問題了


他的Z值就是讓人放深度用的..(淚)

深度就是離攝影機多遠的「距離」,所以會根據你給的距離不同給出不同的世界座標

但 Orthographic 因為投影方式就只是個長方體,所以不管你深度給多少都會是一樣的

Perspective 則是一個金字塔型,所以深度的遠近會有很大的差距

而我傻傻的

mousePosition 的 Z 值預設是 0,深度 0當然就是貼著攝影機,當然就是攝影機座標啦!

4

3

LINE 分享

相關創作

原神 振晶的應用研究 全獎勵攻略

【雜記】最近的超多委託圖p7

【生活&調整】2024/05/05(日)、鬍鬚張&以及調整週

留言

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】