1. 程式人生 > >關於Unity中的資源管理,你可能遇到這些問題

關於Unity中的資源管理,你可能遇到這些問題

關鍵字

AssetBundle
資源製作 紋理\網格\材質\Shader\音訊\動畫
Lightmap

一、AssetBundle 相關

Q1:Unity中的SerializedFile是怎麼產生的?請問用Unload(false)可以清除嗎?因為讀取了Bundle裡面的內容後已經賦值給其他物體了。而且我把圖片都打成了Bundle,然後讀取出來,圖片的大小應該是超過了這個SerializedFile的大小的?
請輸入圖片描述

SerializedFile是AssetBundle載入時產生的序列化資訊,一般為LoadFromCacheOrDownload、LoadFromFile和New WWW載入本地AssetBundle檔案所致。如果AssetBundle中的資源已經載入,且後續沒有依賴該AssetBundle的資源進行載入,那麼可以通過Unload(false)將其刪除。SerializedFile中記錄的是AssetBundle的序列化資訊,而不是其包含資源的內容,因此,其大小要小於或遠小於資源的實際記憶體。

Q2:我們現在採取了2種資源管理方式, 我想了解下記憶體佔用問題。 方式A:AssetBundle載入好以後在記憶體中保留, 如果需要建立物件就通過Instantiate來建立。方式B:AssetBundle載入好以後立刻通過Instantiate例項化一個物件, 然後Unload(false)這個AssetBundle,如果需要,建立物件通過clone來完成。對於方式A,在Profiler中發現 WebStream中有相關AssetBundle檔案存在, 我們認為這份記憶體是多餘的, 所以就採取了方式B, 方式B又面臨資源解除安裝不乾淨的情況。想確認一個問題, 如果採取方式A: 一個 xxx.assetBundle原始檔案大小是 1MB, 解壓到Webstream記憶體中是2MB, 最終實際記憶體佔用是2MB 還是3MB 呢?

如果採取方式A:最終實際記憶體佔用是2MB,而不是3MB,WebStream中已經包含原始AssetBundle的資料。對於沒有依賴關係的AssetBundle檔案,我們推薦方式B的形式對AssetBundle進行解除安裝,這樣可以免除不必要的記憶體佔用,對於這種方式加載出來的資源,可以通過Resources.UnloadAsset和Resources.UnloadUnusedAssets來進行解除安裝,如果無法解除安裝,則該資源一定被快取了,研發團隊可通過檢測自己的快取池/Constainer來進行檢測。同時,如果是Unity 5.3以後版本,可嘗試通過Memory Profiler來進一步檢視。

Q3:打包時候AssetBundle的md5總變化(被打包的東西沒變),請問能怎麼解決?有說法是加上DeterministicAssetBundle就可以,但是我嘗試後發現md5依然變化。

該方法確實並不受用。對於Unity 4.x版本的AssetBundle檔案,其md5值在某些情況下確實會前後不一致(哪怕是完全一樣的內容進行打包)。對於該系列版本,僅能建議開發團隊建立配置檔案來對AssetBundle進行管理。
而對於Unity 5.x版本,則可以在打包時開啟 AppendHashToAssetBundleName 選項,這樣Unity引擎會在每個AssetBundle檔案後生成一個唯一的HashID(顯示地放在檔名後),開發團隊可以通過該ID來判斷對應的AssetBundle檔案是否發生改變。

Q4:如果採用依賴打包的話,比如NGUI,圖集A作為被依賴包,介面1、2、3作為獨立包,分別依賴打包。當圖集A重新打包的時候,是不是介面1、2、3也都要重新打包?目前我們是介面打包時清空全部的圖集資訊再打包,在客戶端載入後再動態賦值回來。這樣可以實現單獨更新圖集,但是代價就是載入的效能。請問有什麼更好的解決方案呢?

“當圖集A重新打包的時候,是不是介面1、2、3也都要重新打包”,這是不需要的,Unity 4.x的依賴打包的限制在於,在重新打一個包時需要將它依賴的包都重新打一次,但不需要重打依賴它的包。

Q5:請問內建的shader怎麼打包?我用到了內建材質球,不只是Shader,這時候在Profiler中看到載入的結果中會出現多份,如下圖所示
請輸入圖片描述

通常有兩種方式對內建的Shader進行打包:

  1. 將其新增到Graphics Settings中的Always Included Shaders 中,此時新增後的內建Shader就不會被打入AssetBundle包中;

Q6:請問粒子特效的Shader是否不能使用依賴打包? 我們對Shader的模型和特效使用了依賴打包,執行的時候發現模型顯示是正常的,但是粒子特效使用的Shader就不能正常執行,特效顯示不正常。而在編輯器中,我們看到Material中的Shader是存在的。這時候如果重新手動給這個Material指定同樣的Shader,這個粒子特效就能正常顯示,請問這是什麼原因引起的?

部分 Shader 在打包到 Android 版本的 Assetbundle 之後,會因為平臺不相容而無法正確顯示,這是因為打包後的 Shader 程式碼只保留了目標平臺的預編譯程式碼,不一定能夠在 Editor 下執行,所以這是正常現象。 但這並不會影響依賴打包,因為在真機上並不會出現類似的問題。

Q7:Resource的場景下有兩個場景Scene1.unity和Scene2.unity。我要對這些檔案進行打包,生成了

Scene1.assetbundle 
Scene1.assetbundle.meta 
Scene2.assetbundle 
Scene2.assetbundle.meta

如果我有相同的資源,理論上它會在這兩個包裡各存一份,這樣就造成了包體過大。所以有沒有辦法把共享資源做成依賴項單獨打包,這樣的話每個場景就不會過大了。Unity 5.x的BuildAssetBundles打包機制是否和Unity 4.x不一樣?原來的打包機制已經被剔除了嗎?

用Unity 4.x 的 Push/Pop 是可以抽出相同的資源,並且據我們所知該方法在Unity 5.x 中也受用。根據Unity 5.x新的打包機制,只要把相同資源的 AssetBundle Name 設定好,打包時就會自動抽出來。

Q8:現在生成AssetBundle的時候每個檔案會多生成一個Manifest檔案,這個檔案也需要一起隨著AssetBundle上傳嗎,在資源載入的時候具體怎麼用呢?

每個檔案多生成的Manifest 檔案是不需要上傳的,其作用就是供開發人員檢視AssetBundle 中的依賴關係等資訊。
但除了每個檔案多生成的 Manifest 以外,根目錄下還會有一個與根目錄同名的AssetBundle 以及 Manifest 檔案,通過執行時載入這個AssetBundle,可以得到一個 AssetBundleManifest 物件,然後就可以通過這個物件得到AssetBundle直接的依賴關係。
更多資訊可以參考http://docs.unity3d.com/ScriptReference/AssetBundleManifest.html

Q9:如果我有一個Prefab,它的Dependencies都在Resources資料夾中,那麼,當我在AssetBundle打包時,只打包這個Prefab(不指定BuildAssetBundleOptions.CompleteAssets和BuildAssetBundleOptionsCollectDependencies)的話,這個Prefab能夠正確例項化嗎?

這是不能正確例項化的,因為AssetBundle中的資源和Resource資料夾下資源是不會建立依賴關係的(指令碼除外,因為開啟BuildAssetBundleOptionsCollectDependencies 時,指令碼依然不會打包到AssetBundle中)。所以會出現Mesh、Material等的丟失。

Q10:我們通過AssetBundle預載入Shader後,並沒有解除安裝AssetBundle,但是發現後面載入的Object並沒有引用到正確的Shader,這可能是由於什麼原因呢?

很可能是專案中AssetBundle的依賴關係打包不正確。後續載入的AssetBundle都需要與Shader的AssetBundle檔案進行依賴,這樣Unity引擎才會在載入後續AssetBundle時,將Shader進行關聯。
建議開發團隊通過UWA資源檢測來檢測下AssetBundle檔案的依賴關係。主要檢視兩處,一個是Shader是否被冗餘打包;一個是其> 他的AssetBundle是否與Shader的AB進行正確的依賴。具體檢測效果如下:
請輸入圖片描述
如下圖紅框所示,開發團隊可以直接檢視Shader以及其他資源在AssetBundle包中的冗餘情況。
請輸入圖片描述

Q11:我遊戲裡重複的特效較多,有些只是圖案相同但改變了顏色引數,如果都打成獨立AssetBundle,則記憶體裡面會有多份Texture。關於這樣的打包一般有什麼推薦的方法呢?

如果是相同內容且僅是整體顏色不同的話,那麼建議專案中只保留一份初始紋理資源,並通過Shader在執行時改變其整體配色,從而達到不同的效果。但如果是區域性配色不同,那麼可以在原始紋理的基礎上加一種或幾種Mask紋理,用來負責顏色的自適應調配,然後再通過Shader來達到不同的展示效果。

Q12:請問一下,我兩個預設都引用了第三個AssetBundle的貼圖,如果不希望這張貼圖存在兩份,一定要等這兩個預設都載入好了,才能解除安裝貼圖的AssetBundle嗎 ?

是的,但並不是因為這樣做會使“這張貼圖存在兩份”,而是因為如果先解除安裝貼圖的AssetBundle會導致後續載入兩個預設時會丟失依賴,即找不到貼圖。如果指令碼中會對這個情況進行檢查並重新載入貼圖的AssetBundle,那麼此時才會造成“這張貼圖存在兩份”的問題。

Q13:UGUI的圖集操作中我們有這麼一個問題,載入完一張圖集後,使用這個方式獲取其中一張圖的資訊:assetBundle.Load (subFile, typeof (Sprite)) as Sprite; 這樣會複製出一個新貼圖(圖集中的子圖),不知道有什麼辦法可以不用複製新的子圖,而是直接使用圖集資源 。
請輸入圖片描述

經過測試,這確實是 Unity 在 4.x 版本中的一個缺陷,理論上這張“新貼圖(圖集中的子圖)”是不需要的,並不應該載入。 因此,我們建議通過以下方法來繞過該問題:
在 assetBundle.Load (subFile, typeof (Sprite)) as Sprite; 之後,呼叫
Texture2D t = assetBundle.Load (subFile, typeof (Texture2D)) as Texture2D;
Resources.UnloadAsset(t);
從而解除安裝這部分多餘的記憶體。

Q14:下圖一是剛進遊戲時獲取的資訊,第二張是開關幾次同一個UI介面後獲取,對比兩圖我們發現有多份重複的Texture。請問這是為什麼?我們的載入方式是UI通過AssetBundle載入,載入後會釋放AssetBundle,然後再次載入 UI 就會造成紋理資源的冗餘。
請輸入圖片描述
請輸入圖片描述

剛進遊戲時獲取的圖中出現的“重複”資源可能並不是冗餘,因為 Atlas的一個 Group 中可能包含多張一樣大小的Page(即紋理),而這幾個Page在記憶體中的名字是一樣的。
但是,如果同一UI介面多次開啟後,記憶體中出現了更多同樣的資源,則說明UI的管理方式存在一定問題。對於頻繁使用的UI,我們建議在載入之後通過緩衝池對其進行快取,後續使用時,直接通過緩衝池獲取即可。而不要每次均通過AssetBundle進行載入,這種做法既會造成更大的CPU佔用,同樣會很大機率造成資源的冗餘。
同時,如果多次開啟的是不同UI介面,並且造成記憶體中同種資源的增加,則很有可能是UI在AssetBundle打包時形成了冗餘(這種情況在目前的UGUI系統中較為常見)。對此,如果開發團隊使用的是UGUI,那麼我們的建議如下:

  1. 對於使用Unity 5.x的新AssetBundle打包系統,則打包時儘可能將同種Atlas的UI介面打成一個AssetBundle檔案,否則將很有可能出現資源冗餘的情況;
  2. 對於使用Unity 4.x的老AssetBundle打包系統,則可以將一個含有Atlas的Prefab(或其他Object)先打包,其他UI元素對其進行依賴即可。

此外,開發團隊可以考慮用 WWW.LoadFromCacheOrDownload 來載入共享包,因為 new WWW 的方式會在記憶體中形成 WebStream 造成較多的記憶體開銷。關於該函式的具體優劣,開發者可以參考你應該知道的AssetBundle管理機制

Q15:專案在釋出時,Player Setting中勾選的這個選項(Optimize Mesh Data),對於已經打包並且放到了Streaming Assets中的AssetBundle檔案有效果嗎?模型資源裡有個Optimize Mesh,是否能達到同樣的效果?

理論上 Optimize Mesh Data 是 Build Player 或者 Bundle 時才生效的,所以之前打好的 Bundle 就沒效果了。另外,兩個選項的效果是不同的,後者是調整面片排序的。


二、資源使用

紋理相關

Q1:關於貼圖型別設定請問有什麼好的建議呢?是否所有的貼圖都設定為Advanced比較好?這種情況下的貼圖記憶體是不是比較小?
請輸入圖片描述

Unity預設情況下會將絕大多數紋理設定為Texture模式。一般來說,Texture模式對於絕大多數紋理資源也都是合適的。上面的例子中,Advanced模式下之所以記憶體佔用較小,是因為關閉了Mipmap選項,所以其記憶體下降了。其本質跟Advanced模式無關。Advanced模式較之Texture模式和其他模式,可以更大自由地對紋理資源進行控制。因此,如果你想對紋理資源進行更加自定義地設定,可以選擇Advanced模式進行編輯。

Q2:同樣的包同一個圖集,ETC2格式,在紅米Note1上會比酷派的記憶體會大四倍,請問這是什麼原因造成的?如果不支援OpenGL 3.0,會造成這麼大的影響嗎?

ETC2 的格式理論上只在OpenGL ES 3.0 的裝置上被支援,而在不被支援的裝置上則會內部自動轉成 RGBA32/ARGB32的格式,這對於 RGBA Compressed ETC2 8bits 的紋理就是放大了 4 倍。因此,如果希望在 OpenGL ES 2.0 的裝置上對透明材質進行壓縮,那麼可以嘗試使用分離 Alpha 通道的方式,用兩個 ETC1 來進行壓縮。

Q3:我現在動態載入StreamingAssets下的貼圖,程式碼如下
請輸入圖片描述
我發現這種方式記憶體消耗很大,一張512 x 512的貼圖佔用了2MB,看官方的解析是記憶體和視訊記憶體各需一份。想了解下動態載入貼圖有什麼推薦的方式嗎?

一般來說,我們比較建議通過AssetBundle來動態載入資源,而非通過bytes流來進行載入。如果你的專案正在使用這種方式來載入紋理,我們建議從策略上考慮將其更改。在我們目前來看,通過bytes流來生成資源,絕大部分原因是想對其進行加密,從而讓資源難於破解。但其實這種加密方式用處不大,因為據我們所知,現在有很多工具可以直接通過底層顯示卡層來直接檢視各種紋理、Mesh資源,比如Mali Graphics Debugger、Qualcomn Profiler等。因此,如果是從加密的角度來通過bytes流生成資源,那麼我們建議通過AssetBundle這種直接的方式進行載入。

Q4:iOS平臺需要對圖集做RGB和Alpha通道的分離嗎?我發現在同樣大小的圖片(正方形),RGB Compressed PVRTC 4bits和RGBA Compressed PVRTC 4bits兩種格式,佔用記憶體是一樣的,如果把一張圖片分成兩張,那麼在iOS平臺是不是佔用記憶體多一倍?有透明通道的,對於它的圖集怎麼處理會更好一點?

通常iOS下是不需要做通道分離的,因為 iOS 通用的 PVRTC 格式支援 Alpha 通道。但目前也有團隊反饋,在 iOS 上進行通道分離有助於減少失真,可以在一定程度上提高視覺效果,因此也可以嘗試做一個對比。
如果發現佔用記憶體是一樣的,那麼原始圖片是RGB的。如果iOS上做通道分離,記憶體確實會增加一倍。UI的紋理在iOS下可以直接選擇預設的 Compress,在打Atlas時會自動處理成 PVRTC,開發團隊可以從Sprite packer視窗來看Atlas的壓縮格式做個確認。

Q5:在Unity 4.x的版本中,所有UI貼圖使用ETC2格式,即使目標裝置不支援該格式,也會解壓成RGBA32使用。 而在目前使用的Unity 5.3.4版本中,iOS平臺無法設定ETC2格式。如果壓縮只能使用PVRTC格式,那麼PVRTC存在顯示效果比較差,並且圖片必須為正方形,但如果用RGBA32格式,貼圖佔用的記憶體和儲存又都過大,請問目前版本的Unity在iOS平臺上應該如何設定UI貼圖的壓縮格式?

我們建議可以先嚐試其他的壓縮格式看是否可以達到類似的效果,如ASTC格式。ASTC 在 iOS 的高階機上是被支援的,因此理論上在 Editor 下不會強制把 ASTC 轉為 RGBA32,建議嘗試設定為 ASTC 後打包,從 Editor.log 中或者直接從包體大小上可以看出是否確實使用了 ASTC。

一般來說,如果 RGBA16 的效果可以接受的話,建議使用 RGBA16,雖然打包時相對大一些,但是記憶體中相比 RGBA32 能夠減半,但使用 ASTC 的話,雖然打包時比較小,但是在普通機型上會被處理成 RGBA32,導致過大的記憶體開銷。

Q6:請問Unity引擎中使用什麼貼圖壓縮格式,可以保證在佔用記憶體相對較小的情況下True Color效果和原圖相當?同時在iOS和Android平臺上圖片的壓縮格式分別用什麼比較合適?有什麼需要注意的地方嗎?

目前來講,並不存在一個所有GPU平臺都支援硬體解壓的壓縮格式。 ETC1 和 PVRTC 分別是Android和iOS上我們最推薦的格式。 但對於透明紋理,ETC1不支援,而 PVRTC 則可能有較大失真,因此更推薦使用 RGBA 16。
一般來說建議直接使用 Unity 預設的壓縮格式(即選擇 Compressed 即可,不需要做特殊設定),Unity 會做如下處理:

  1. Android 上不帶Alpha通道的圖片採用 ETC1,帶Alpha通道的圖片採用True Color中的RGB16,TrueColor中的 RGBA16 會>比 RGBA32 更節省空間,但影象的顯示質量會差一些;
  2. iOS 上使用 PVRTC,但PVRTC格式要求紋理的長寬相等,且都是2的冪次(即POT,在ImportSettings中可以將NPOT的紋理自動轉換成POT)。

另外,針對Android 上的帶Alpha通道的圖片,還有一種常見的做法,即把Alpha通道獨立出來作為另一張紋理,從而將 RGB 部分和 Alpha 部分分別採用 ETC1來壓縮,但渲染時就需要自定義的 Shader來處理。
同時,我們不建議直接使用 RGBA32 格式的紋理,因為它佔用了很大的記憶體。一般建議使用 RGBA16 和 ETC 格式的紋理來進行載入。 如果轉換到 RGBA16 格式時出現了類似“色階”的顏色問題,則建議儘可能避免大量的過渡色使用。

Q7:請問遊戲中特效使用的很多貼圖, 一般有什麼好的方式去管理嗎 ? 不合並圖集的話會有上千張小的透明貼圖, 合併圖集又會有佔用記憶體過多的問題。

可以合併成Atlas,一般將盡可能同時出現頻率較高的Texture合成Atlas,這樣並不會造成記憶體過大。在這方面也可以參考我們前不久推薦的外掛Mesh Baker

Q8:iOS上方形POT圖片有時候會失真,請問這種情況如何避免?一張NPOT的圖變換成POT,是否有推薦的方法? 採用 ToLarger 的模式拉成POT是否會有損失呢?

在其他設定一致的情況下,這兩種方式無論在載入還是渲染方面其實並沒有實質上的差別。在我們接觸到的大多數案例中,紋理資源方面的問題除了尺寸外,紋理格式、Mipmap設定和Read&Write功能同樣是需要研發團隊時刻關注的。

Q9:紋理Atlas是建議合成一張2048(尺寸)的紋理還是四張1024的紋理?

在其他設定一致的情況下,這兩種方式無論在載入還是渲染方面其實並沒有實質上的差別。在我們接觸到的大多數案例中,紋理資源方面的問題除了尺寸外,紋理格式、Mipmap設定和Read&Write功能同樣是需要研發團隊時刻關注的。

Q10:NGUI的圖集在記憶體裡存了多份,求問怎麼清理?
請輸入圖片描述

遊戲執行中,UI Mesh出現多份不同記憶體的情況,是正常的,因為隨著UI widget使用的增加或減少,建立的UI Mesh是會隨著變化的。同時,如果不同UIPanel中存在相同Atlas的Widgets,則也會出現上圖中的情況。因此,建議大家遇到這種情況時,檢視單幀中NGUI UI Mesh重名的是否有多份重名資源。如果存在,則說明相同Atlas中的資源被多個不同的UIPanel所使用,這種情況是需要儘可能避免的。
請輸入圖片描述

Q11:我在UWA報告中看到大量的n/a資源,其格式的高度和寬度等資訊都無法獲取,並且存在大量重複,請問我該如何定位這些檔案?能否優化解決呢?

"圖中n/a資源是我們在專案執行時檢測到的無名稱資源,一般來說,該型別資源並非Asset資料夾中的美術資源,而是專案通過指令碼動態生成的資源,比如new Mesh、new Texture等操作,即會生成這種型別的無名稱資源。
對此,我們建議研發團隊詳細檢測邏輯程式碼/第三方外掛中諸如New Mesh/Textue等此類操作,同時,在指令碼動態生成該類資源後,為其賦上一個名字,這樣即可在後續測試中看到對應名稱的資源使用情況。"

網格相關

Q1:如果一個模型對應Skinned Mesh Renderer例項,那其所佔的記憶體會隨著角色增加而增長麼 ?

簡單地從一個角色Prefab例項化(Instantiate)出多個例項時,Mesh並不會出現多份(這個行為與其他資源是一致的,包括Texture,AnimationClip,Material等等)。如果在記憶體中發現多份,可以考慮從專案中AssetBundle的載入方式入手,因為即使是同一個AssetBundle中的同一個角色Prefab,如果被反覆進行“載入-例項化-解除安裝”操作,依然是會導致Mesh出現多份的(當然其他的資源也是一樣)。

Q2:我有一個特效依賴了兩個FBX。我把這兩個FBX的這個勾選去掉,Editor執行正常。否則就會宕機,請問這是什麼原因?
請輸入圖片描述

將FBX上的Read/Write Enabled關閉後,記憶體中便不再儲存其Mesh的副本(只存在視訊記憶體中),因此其屬性就不可再被訪問和修改。而粒子系統通常需要動態地修改其粒子的頂點屬性。因此,理論上來說,供粒子系統使用的Mesh是需要開啟Read/Write Enabled的,而在Editor下Mesh和Texture都是強制開啟的,所以在真機上就會出現問題。

Q3:MeshBaker 烘焙的Mesh可以儲存到Prefab中,但是不能像FBX一樣,設定Model匯入設定中的Generate Lightmap UVs 等資訊,請問有沒有大招可以處理此情況?

首先從理論上說,一個 Mesh 只能有一個 LightmapIndex 和 LightmapOffset 屬性,這就決定了 Mesh 的合併必須在 Lightmap 的烘焙之前。
而在做Mesh合併時,需要注意到UV2對於一個Mesh而言,其所有三角面的UV區域都必須是互不重疊的,所以不能簡單直接地合併。
考慮到合併前每一個Mesh的UV2區域都應該是在[0,1]x[0,1]的區間中,在合併時可以給每一個UV2區域做一個縮小和平移,從而可以把每個區間在互不重疊的情況下,放到同一個[0,1]x[0,1]的區間中。
在UV2也正確拼合後,重新進行Lightmap的烘焙即可得到正確的效果。

動畫片段相關

Q1:我想要在Editor下批量地對Animator Controller檔案中每一個的State裡的Animation Clip進行替換,但好像沒有看到 Unity引擎有提供類似的API,只提供了能在Runtime時進行替換的方法,類似下圖:
請輸入圖片描述
我現在想要達到的目地是在Editor下寫一個批量替換Animation Clip的外掛,請問下Unity引擎是否有提供這樣的介面呢?

在Unity 5.x 中已有一套完整且穩定的 API 可以訪問、修改和建立 Animator 中的任何元素。其名稱空間是在 UnityEditor.Animations 下,以下Blog 中有一個簡單的例子是通過指令碼建立一個 AnimatorController 以及其中的各種屬性和引數。

相關推薦

關於Unity資源管理可能遇到這些問題

關鍵字 AssetBundle 資源製作 紋理\網格\材質\Shader\音訊\動畫 Lightmap 一、AssetBundle 相關 Q1:Unity中

關於Unity的NGUI優化可能遇到這些問題

關鍵字 介面製作介面切換網格重建UICamera.UpdateDraw Call載入字型 一、介面製作 Q1:我用的是NGUI,本來已經打包圖集了,輸出時候是不是就不用理會那些原始2D

共享印表機時出現"無法訪問可能沒有許可權使用網路資源

現象: 在一臺電腦上面共享印表機之後,在另一臺電腦上面新增網路印表機時,有可能會遇到"無法訪問,你可能沒有許可權使用網路資源“的問題。 解決方法: 請首先檢查計算機所在的域/工作組是否相同,再檢查域/工作組中的"計算機名"是否唯一!!! Windows 8.1 中文版

解決“**無法訪問可能沒有許可權使用網路資源請與管理員聯絡拒絕訪問!"

電腦出現“XXX無法訪問。你可能沒有許可權使用網路資源......”,ping得通,即使重新系統也不能解決 。   方法一:出現這一類的問題有可能的防毒軟體可能出於安全考慮做了什麼設定,讓電腦自己重新重新整理一下網路設定。具體操作:網路連線—>網路安裝嚮導 —&

未來可能不屬於任何公司

交易 成了 data 而是 三分 ron 動向 image 參考 優步自己沒有車,只是用車平臺;阿裏自己沒有貨,只是交易平臺;微博自己不生產內容,只是內容平臺…… 那麽人才呢?是否也沒必要用企業的形式組織起來,而用平臺的方式呢? 實際上,追溯回去的話,“企業”這種組織

丟掉生活的90%會收獲更多

幸福感 人生 div 烏龜 放下 webp 手機 問題 自己的 約書亞·貝克爾,一個典型的高富帥。掌管150家店鋪,拿著7位數薪水,有一個美麗妻子。20多歲就買了豪宅名車。聽著是不是很牛?其實他是生活的大輸家。讀大學時,約書亞覺得,“富裕就是每年掙5萬

張書樂:在發爾康和葛優躺表情包時可能在侵權他卻在賺錢

表情包使用次數TOP10的表情符號裏,“哭笑不得”的表情使用次數最多,總計高達7518440701次;女性青年每人平均每天使用表情2.84次,而男性青年每人平均每天使用表情次數為0.74次,女性是男性的3.83倍。與男性相比,女性的表情使用普遍偏感性。文/張書樂(人民網、人民郵電報專欄作者)新著有《微博運營完

Chrome 開發者控制臺中可能意想不到的功能

uga ole 增加 開啟 ++ 計算 javascrip 變量 想象 Chrome 有內置的開發者工具。它擁有豐富的特性,比如元素(Elements)、網絡(Network)和安全(Security)。今天,我們主要關註一下 JavaScript 控制臺。 當我最

2.2.1 傳播行為 當事務方法被另一個事務方法調用時必須指定事務應該如何傳播。例如:方法可能繼續在現有事務運行可能開啟一個新事務並在自己的事務運行。

相同 comment 自己的 執行 run lose 傳播 tty 可能 2.2.1 傳播行為 當事務方法被另一個事務方法調用時,必須指定事務應該如何傳播。例如:方法可能繼續在現有事務中運行,也可能開啟一個新事務,並在自己的事務中運行。 2.2.1 傳播行為 當事務

網頁搜索新技能可能想不到的實用腦洞

實用 結果 項目 使用 腦洞 關鍵詞 很好 post 提示 使用百度一些專業知識的時候,在百度結果頁面點擊選擇一個類似於百度文庫的最優選擇,點開卻不知道到如何找起,因為搜索的關鍵詞不會被提示出來。這時就可以使用Ctrl+F,在網頁中查詢想要的關鍵詞,還可以高亮顯示。 p主在

看看這些科技公司夜晚的辦公室還羨慕程序員的高薪嗎?

it一提到程序員,大多數人的印象大概就是死宅、無趣、沒有私人生活,除了上班寫寫寫代碼,加班寫代碼更是標配。似乎在深夜頂著雞窩頭,目光呆滯,面無表情敲鍵盤的場景才是一個程序員的真實寫照。 在一線城市很多高薪收入程序員住著十幾平方的城中村農民房,二十七八歲沒有女朋友,每天早出晚歸,月薪兩三萬,當別人看到他們衣著整

深入解析 kubernetes 資源管理容器雲牛人有話說

系統 關系 充足 sig 配置信息 解釋 進行 解決 由於 資源,無論是計算資源、存儲資源、網絡資源,對於容器管理調度平臺來說都是需要關註的一個核心問題。 ? 如何對資源進行抽象、定義?? 如何確認實際可以使用的資源量?? 如何為容器分配它所申請的資源? 這些問題都是平

Asp.Net Core使用Swagger不得不踩的坑

action npr resolve com rate point creat 21點 use   很久不來寫blog了,換了新工作後很累,很忙。每天常態化加班到21點,偶爾還會到淩晨,加班很累,但這段時間,也確實學到了不少知識,今天這篇文章和大家分享一下:Asp.Net

交易的數理關心的都在這裏!

term 股票 trade png com 圖片 分享 有關 arc 原文鏈接 「交易是一門藝術,事關對經濟的分析、政策的判斷、人性的理解;又是一門嚴謹的科學,事關隨機微積分、概率統計、優化理論。本文從量化金融的起源開始,還原整個體系的建立、發展與完善的歷史過程,帶你走進算

寫一個unity載入資源管理

需求: 1.能切換不同載入模式     開發階段編輯器執行直接載入資源無需打ab包     測試或正式釋出階段通過ab包載入資源 2.快取機制 能定時清理長時間未使用的資源記憶體 3.既有同步載入 也有非同步載入

前端演算法題 | 這道題效率最高的演算法可能不知道?

    尋找最長的不含有重複字元的子串 可能看標題不會明白這個題到底什麼意思,來看看下面的例子:   abcabcbb  ➡  abc ➡  3 bbbb  ➡  b  

曉萌最近在做一個翻轉圖片的應用可能也知道圖片其實是由一個個的點組成的。於是曉萌想先做一個可以翻轉矩陣的程式來解決他問題的核心部分。

曉萌最近在做一個翻轉圖片的應用,你可能也知道,圖片其實是由一個個的點組成的。於是,曉萌想先做一個可以翻轉矩陣的程式,來解決他問題的核心部分。 輸入格式 輸入第一行包括由空格分開的整數 M,N,T(0<N,M<200),T 的值為 0 或 1。其中M 和 N 分別表示待

淺談 Java 10 可能不知道的五件事

Java 9出現之後僅僅過去6個月,現在Java 10已經在敲門了。與它的版本號一樣,Java 10提供了10個新特性,本文提供了我認為最重要的5個特性(您可以在Open JDK 10專案頁面上檢視它們)。區域性變數型別推斷是有爭議的熱點,但Java 10在JVM中的垃圾收集和容器識別上帶來

關於“視訊”可能不知道的那些事兒

你覺得一段 1080P ,60 幀的視訊,一秒鐘應該佔多少空間? 視訊的基礎屬性 1080p 和 1080i 的區別 當你聽見 “一個 1900 x 1080 的視訊” 這樣的描述時,你一定能反應出:這指的是視訊的解析度對應寬和高的畫素值。首先我們需要知道,1080p 是 1080 pro

關於Linux的27件小事可能一個都不知道!

許多人認為10月5日是 Linux系統的週年紀念日,因為這是 Linux 在1991年首次對外公佈的時間。不過,你可能不知道的是,早在1991年8月25日,當年還是大學生的 Linus Torvalds 就向 comp.os.minix 新聞組的人透露了由於“業餘愛好”他正在