現在在開發一個類似桌面軟體的需要3d引擎的東西,于是用了unity。需求如下:在場景加入ugui和一些model,將場景編輯器中的空白部分(ui和model以外的區域)透明,全屏,然后可穿透點擊整個form。好吧表達能力問題。。效果就好像螢屏上光有個model和ui然后最好能檢測下ui是否處于focus狀態。
感覺現在最大的問題就是那個ui。在官方forum上看到了一些用user32.dll修改表單(視窗)屬性的方案,可是一改屬性就只能觀察,ui全部不能操作了。。
提前感謝答題的各位大佬們 /抱拳
uj5u.com熱心網友回復:
www.xttblog.comwww.codedq.net
業余草
CODE大全
uj5u.com熱心網友回復:
估計是有BUG 該DLL有BUG,這種問題說難不難,細心點就行了,說容易也不容易
一般就是不小心呼叫了set readable
很多時候這種程式BUG,并不是就是說真的就是 dll本身問題
根本就是你自己呼叫問題,(這個通過細心可以解決)
還有就是ugui官網都不支持了。。。。ugui diable的方法名字不一定是我說的這些,我也不夠細心,沒背起來的,但應該就是只有enable...
很少碰到editable問題
uj5u.com熱心網友回復:
大佬你好,我仔細檢查了一遍了ww依然沒找到問題。。估計是對某些代碼理解不全吧,
以下是源代碼要是有條件能不能幫忙看看readable取決于哪一步?
With much thx
http://answers.unity3d.com/questions/869378/viewing-desktop-in-scene.html
uj5u.com熱心網友回復:
人家代碼備注都寫的很清楚了。。。。long lCurStyle = GetWindowLong(handle, -16); // GWL_STYLE=-16
...
SetWindowLong(handle, -16, lCurStyle);// GWL_STYLE=-16
etWindowLong(handle, -20, 524288 | 32);//GWL_EXSTYLE=-20; WS_EX_LAYERED=524288=&h80000, WS_EX_TRANSPARENT=32=0x00000020L
gwl_style好像就是這樣的
設了視窗透明,好像就真的不能操作了
具體你得看這些引數的含義,你要的效果也應該能做到,就等于在桌面開一個洞嘛,,(你的問題主要是hwnd set long后失去焦點了,所以你無法操作)
windows只能有一個視窗在最前面,,,,,這是windows的固有框架,win32開始就是這樣的,可以說是25年前就是這樣的。。。
mac更恐怖,只能有1個app在最前面。。。。
user32真的要仔細看看有什么API,有些API是隱藏的還,我也沒什么時間幫你看,這個還得靠你自己慢慢除錯
我也是不怎么細心,和沒什么耐心的。。。
hwnd 是windows的表單句柄。。。。。幾乎所有代碼都這么寫的,看多了也不用看備注了。。。。。。
你能看到的視窗hwnd都是存在的,就是你能看到不代表你能操作。。。。。
uj5u.com熱心網友回復:
像你這種問題,以前在C++,WINDOWS板塊,很多人回復的,是直接什么都不說,直接回復代碼引數的,還是對的,現在不知道那些老人還在不在了。。。。。。。。但我發現現代編程也真的是分門別類多了很多,而自己真的不是懂很多
離開windows很久了,。。。
游戲,和手機問題你可以問我。。。。
這種dll,就算是編譯問題還是不是很熟悉
uj5u.com熱心網友回復:
// Transparent windows with click throughSetWindowLong(handle, -20, 524288 | 32);//GWL_EXSTYLE=-20; WS_EX_LAYERED=524288=&h80000, WS_EX_TRANSPARENT=32=0x00000020L
//透明和點擊穿透,
524288 就是該表單不接受點擊。。。。
你設成
SetWindowLong(handle, -20, 32);//GWL_EXSTYLE=-20; WS_EX_LAYERED=524288=&h80000, WS_EX_TRANSPARENT=32=0x00000020L
不行么???
uj5u.com熱心網友回復:
非常感謝您回家試試uj5u.com熱心網友回復:
現在可以點擊了但是其他部分沒辦法穿透點擊了我想實作的就想您說的挖個洞,所以這樣也不符合需求。。非常浪費您時間抱歉
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/62873.html
標籤:Unity3D
上一篇:麻將癩子演算法
