Unity 3D 腳本教學 (十五)

上一篇主題 下一篇主題 向下

Unity 3D 腳本教學 (十五)

發表  aaa1218bbb 于 周五 11月 25, 2011 2:36 pm

◆ LightRenderMode.Auto
描述: 自動選擇渲染模式。
選擇是否渲染這個Light為像素光或者頂點光源(建議缺省)。
// 設置光源的渲染模式為自動
light.renderMode = LightRenderMode.Auto;
參見: light組件
◆ LightRenderMode.ForcePixel
描述: 強制Light為像素光源。
只將這個用於真正重要的光源,例如一個玩家的手電筒。
// 強制光源為像素光源
light.renderMode = LightRenderMode.ForcePixel;
參見: light組件
◆ LightRenderMode.ForceVertex
描述: 強制Light為頂點光源。
這個選項對於背景光或遠處的光照是非常好的。
// 強制光源為頂點光源
light.renderMode = LightRenderMode.ForceVertex;
參見: light組件
LightShadows
Light的陰影投射選項。
參見: light組件

◆ LightShadows.Hand
描述:投射“hard”陰影(沒有陰影過濾)
//設置光源為投射硬陰影
Light.shadows=LightShadows.Hard;
參見:light component
◆LightShadows.None
描述:不投射陰影(默認)
//設置光源為不投射陰影
Light.shadows=lightshadows.None;
參見:light component
◆LightShadows.Soft
描述:投射Soft陰影(帶有4倍PCF過濾)
//設置光源為投射4倍過濾的軟陰影陰影
Light.shadows=lightshadows. Soft;
參見:light component
LightType
Light的類型。
參見:Light.typelight component

◆LightType.Directional
描述:這個光源是一個直射光源。
參見:Light.type, light component
//製作一個直射光源
Light.type=LightType.Directional;
◆LightType.Point
描述:這個光源是一個點光源。
參見:Light.type,light component
//製作一個直射光源
Light.type=LightType.Point;
◆LightType.Spot
描述:這個光源是一個透射光源。
參見:Light.type, light component
//製作一個透射光源
Light.type=LightType.Spot;
MasterServerEvent

RegistrationFailedGameName 註冊失敗,因為給出的遊戲名稱為空。
RegistrationFailedGameType 註冊失敗,因為給出的遊戲類型為空。
RegistrationFailedNoServer 註冊失敗,因為沒有服務器在運行。
RegistrationSueceeded 註冊到主服務器成功,接受到確認。
HostListReceived 從主服務器接受到一個主機列表
NetworkConnectionError

NoError
RSAPublicKeyMismatch 我們提供的RSA公匙與我們所連接系統的不匹配。
InvalidPassword 服務器需要密碼並且拒絕我們的鏈接,因為我們沒有設置正確的密碼
ConnecttionFailed 連接失敗,可能因為內部連接性問題。
TooManyConnectedPlayers 服務器到達​​最大限度,不能連接
ConnectionBanned 我們被試圖連接到的系統禁止了(可能是臨時的)
AlreadyConnectedToAnotherServer 不能同時鏈接到兩個服務器,在再次連接之前關閉這個連接
CreateSocketOrThreadFailure 試圖初始化網絡接口時出現內部錯誤,套接字可能已經被使用了
IncorrectParameters Connect函數具有不正確的參數
EmptyConnectTarget 沒有給出鏈接目標
InternalDirectConnectFailed 客戶端不能內部鏈接到位於相同網絡中的啟用了NAT的服務
NATTargetNotConnected 我們試圖連接到的NAT目標沒有連接到輔助服務器
NATTargetConnectionLost 當試圖鏈接到NAT目標時,連接丟失

◆ ParticleRenderMode.Billboard
描述:作為面向玩家的公告板渲染例子(默認)
◆ ParticleRenderMode.HorizentalBillboard
描述:作為公告板渲染粒子,總是沿著Y軸
◆ ParticleRenderMode.SortedBillboard
描述:從後向前排序並作為公告板渲染。
這個使用混合例子著色器看起來更好,但是因為排序邊得較慢
◆ ParticleRenderMode.Streteh
描述:在運動方向拉伸粒子
◆ ParticleRenderMode.VerticalBillboard
描述:作為公告板渲染粒子,總是面向玩家,但是不沿著X軸旋轉
PhysicMaterialCombine
描述:碰撞物體的物理材質如何被組合
參見:PhysicMaterial.InctionCombine,PhysicMaterial.boticeCombine

Average 平均兩個碰撞材質的摩擦/彈力
Multiply 兩個碰撞材質的摩擦/彈力相乘
Minimum 使用兩個碰撞材質的摩擦/彈力中較小的一個
Maximum 使用兩個碰撞材質的摩擦/彈力中較大的一個
PlayMode
由Animation.Play函數使用

StopSameLayer 將停止在同一層上開始的所有動畫。當播放動畫的時候這個是默認值
StopAll 停止所有由這個組件開始的動畫
PrimitiveType
各種變量可以通過使用GameObject.CreatePrimitive函數創建
參見GameObject.CreatePrimitive

◆PrimitiveType Capsule
描述:膠囊幾何體
參見:GameObject.CreatePrimitive
//創建一個膠囊幾何體
functionsStart()}
var capsule=
GameObject.CreatePrimitive(PrimitiveType.Capsule);
}
◆PrimitiveType Cube
描述:立方體
參見:GameObject.CreatePrimitive
//創建一個立方體
functionsStart()}
var cube=
GameObject.CreatePrimitive(PrimitiveType.Cube);
}
◆PrimitiveType Cyhnder
描述:圓柱體
參見:GameObject.CreatePrimitive
//創建一個圓柱體
functionsStart()}
var cyhnder=
GameObject.CreatePrimitive(PrimitiveType.Cylinder);
}
◆PrimitiveType Plane
描述:平面幾何體
參見:GameObject.CreatePrimitive
//創建一個平面幾何體
functionsStart()}
var plane=
GameObject.CreatePrimitive(PrimitiveType.Plane);
}
◆PrimitiveType Sphere
描述:球形
參見:GameObject.CreatePrimitive
//創建一個球形
functionsStart()}
var sphere=
GameObject.CreatePrimitive(PrimitiveType.Sphere);
}
QualityLeve
圖像質量等級
有六個質量等級可以這樣,每個等級的細節都在工程的Quality Sertings中設置
質量等級可以在腳本中使用QualitySertings類來切換
參見:QualitySertings currentlevel QualityLeveSertings

◆QualityLeve.Beautiful
描述:“beautiful”質量等級
參見:QualitySertings currentlevel QualityLeveSertings
◆QualityLeve.Fantastic
描述:“fantastic”質量等級
參見:QualitySertings currentlevel QualityLeveSertings
◆QualityLeve.Fast
描述:“fast”質量等級
參見:QualitySertings currentlevel QualityLeveSertings
◆QualityLeve.Fastest
描述:“fastest”質量等級
參見:QualitySertings currentlevel QualityLeveSertings
◆QualityLeve.Good
描述:“good”質量等級
參見:QualitySertings currentlevel QualityLeveSertings
◆QualityLeve.Simple
描述:“simple”質量等級
參見:QualitySertings currentlevel QualityLeveSertings
QueueMode
由Animation.Play函數使用

CompleteOmers 所有其他動畫通知播放後開始播放
PlayNow 立刻開始播放,如果你只是想開蘇創建一個複制動畫可以使用這個
RPCmode
用來選擇誰將接收這個RPC

Server 只發送到服務器
Others 發送給所有人除了服務器
OthersBuffered 發送給每一個,除了服務器,並添加到緩存
All 發送到每個人
AllButFered 發送到每個人並添加到緩存
RenderTextureFormat
RenderTexture的格式
參見:RenderTexture.fonmat,RenderTexture類

◆RenderTextureFormat ARGB32
描述:一個32位顏色的渲染紋理格式
參見:RenderTexture,RenderTexture類
◆RenderTextureFormat.Depth
描述:渲染紋理格式的深度
深度格式用來渲染高精度“深度”值到一個渲染紋理,實際使用哪個格式依賴於平台,在OpenGL中,它是原始“深度組件”格式(通常是24或16位),在Direct3D9中它是32位浮點(R32F)格式,在編寫使用或渲染到深度紋理的shader時,必須確保它們能夠工作在OpenGL和Direct3D中,參考depth textures documentation
注意不是所有的顯卡支持深度紋理。使用SystemInfo supportsDepthRenderTextures來檢查是否支持
參見:RenderTexture format,RenderTexture類,SystemInfo.supportsDepthRenderTextures

RigidbodyInterpolation
Rigidbody插值模式
對於那些被相機跟隨的主角色或交通工具,建議使用插值。對於任何其他剛體建議不使用插值
參見:RigidbodyInterpolation變量

◆RigidbodyInterpolation.Extrapolate
描述:外插值將基於當前速度預測剛體的位置
如果你有一個快速移動的物體,這個能夠導致剛體在一幀中穿過碰撞器然後彈回
Rigidbody.interpolation=RigidbodyInterpolation.Extrapolate;
參見:RigidbodyInterpolation變量
◆RigidbodyInterpolation.Interpolate
描述:插值總是有些之後但是比外插值更光滑
Rigidbody.interpolation=RigidbodyInterpolation. Interpolate;
參見:RigidbodyInterpolation變量
◆RigidbodyInterpolation.None
描述:不插值
Rigidbody.interpolation=RigidbodyInterpolation.None;
參見:RigidbodyInterpolation變量
RotationDriveMode
用它自己的XYZ後者SlerpDrive控制ConfigurableJoint的旋轉

XYAndZ 使用XY&Z驅動
Slerp 使用Slerp驅動
RuntimePlatform
應用程序運行的平台。由Application platform返回

OSXEditor OSX下Unity編輯器模式
OSXPlayer OSX上的播放器
WindowsPlayer Windows上的播放器
OSXWebPlayer OSX下的web播放器
OSXDashboard OSX下Dashborard窗口
WindowsWebOlayer Windows上的web播放器
WindowsEditor Windows下Unity編輯器模式
ScaleMode
繪製紋理的縮放模式

StretchToFill 縮放紋理以便完全填充傳入GUI.DrawTexture的矩形
SealeAndCrop 縮放紋理,維持長寬比,這樣它完全覆蓋傳遞到GUIDrawTexture的position矩形,如果紋理被描繪到具有不同長寬比的矩形上時,圖像被裁剪
ScaleToFit 縮放紋理,維持長寬比,這樣它完全與傳遞到GUIDrawTexture的position矩形相匹配
SendMessageOptions
如何發送一個消息的選項
這個用在GameObject和Component的SendMessage和BroadcastMessage上

◆SendMessageOptions.DontRequireReceiver
描述:SendMessage不需要一個接收者
◆SendMessageOptions.RequireReceiver
描述:SendMessage需要一個接收者
如果沒有找到接收者,將在控制台上打印以錯誤(默認)
SkinQuality
影響單個頂點的最大骨骼數量
參見:SkinnedMeshRenderer.quality

Auto 從當前QualitySetings(默認)數中選擇骨骼數量
Bone1 僅使用1骨骼變形一個頂點,(最重要的骨骼被使用)
Bone2​​ 僅使用2骨骼變形一個頂點,(最重要的骨骼被使用)
Bone4 僅使用4骨骼變形一個頂點
Space
在那個坐標空間中操作
參見:Transform

World 相對於世界坐標系統應用一個變換
Self 相對於局部坐標系統應用一個變換
TerrainLighting
Terrain光照模式
參見:Treeainlighting,TerrainLightings,TerrainSettings

◆TerrainLighting Lightmap
描述:使用光照圖渲染地形
該地形只使用廣州圖,並且不會受到遊戲中光源的影響
參見:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings
◆TerrainLighting Pixel
描述:近處使用光源渲染地形,遠處使用高度圖
在遊戲中靠近觀察者的地形用光照,遠處使用高度圖混合,光源是頂點光照或像素光照模式,並能夠有陰影
光照距離是(Terrain.treeBillboardDistance,QualitySettings.shadowDistance,Terrain.basemapDistance)的最小值
參見:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings
◆TerrainLighting Vertex
描述:使用頂點光照渲染地形
地形將以頂點光照模式被照亮,不使用光照貼圖,投射光源就像頂點光
參見:TerrainLighting,TerrainLightmaps,TerrainLightmapsSettings
TextAlignment
多行文本應該如何被對齊
這個是被GUIText.alignment屬性使用
參見:GUI Text component

Left 文本行左對齊
Center 文本行居中對齊
Right 文本行右對齊
TextAnchor
文本的錨點被放置在什麼位置
這個是被GUIText.anchor屬性使用
參見:GUI Text component

UpperLeft 文本被錨點在左上角
UpperCenter 文本被錨點在上邊,垂直居中
UpperRight 文本被錨點在右上角
MiddleLeft 文本被錨點在左邊,垂直居中
MiddleCenter 文本在水平和垂直方向上居中
MiddleRight 文本被錨點在右邊,垂直居中
LowerLeft 文本被錨點在左下角
LowerCenter 文本被錨點在下邊,垂直居中
LowerRight 文本被錨點在右上角
TextClipping
GUI系統處理過大文本的以適合所分配矩形的方式

OverDow 文本隨意浮動在該元素之外
Clip 文本被裁剪以便放置在該元素之內

TextureFormat
Texture的格式,從腳本創建紋理時使用這個。
參見:Texture2D Texture2D,textureFormat

◆TextureFormat Alpha8
描述:只有alpha 的紋理格式
function Start(){
//創建一個新的只有alpha的紋理並將它賦予
//該渲染器材質
var texture=new Texture2D(128,128,TextureFormat,Alpht8,false),
rederer.material.mainTexture=texture;
}
參見:Texture2D Texture2D,textureFormat
◆TextureFormat ARGB32
描述:只有alpha 的彩色紋理格式
function Start(){
//創建一個新的紋理並將它賦予給渲染器材質
var texture=new Texture2D(128,128,TextureFormat,ARGB32,false),
rederer.material.mainTexture=texture;
}
參見:Texture2D Texture2D,textureFormat
◆TextureFormat DXT1
描述:一個壓縮的彩色紋理格式
參見:Texture2D Texture2D,textureFormat
◆TextureFormat DXT5
描述:帶有alpha通道的彩色壓縮紋理格式
參見:Texture2D Texture2D,textureFormat
◆TextureFormat RGB24
描述:一個彩色紋理格式
function Start(){
//創建一個新的紋理並將它賦予給渲染器材質
var texture=new Texture2D(128,128,TextureFormat,RGB32,false),
rederer.material.mainTexture=texture;
}
參見:Texture2D Texture2D,textureFormat
TextureWrapMode
紋理的包裹模式,對應與texture inspector中的設置
你可以能夠平鋪紋理(重複)或者映射一個紋理到物體上(裁剪)

參見:Texture.wrapMode,texture assets

◆TextureFormat.Clamp
描述:裁剪紋理到邊界上最後一個像素
在映射一個紋理到物體上並且你不想紋理平舖時,這個可以避免包裹的不真實,UV坐標將被裁剪到返回0….1.當UV大於1或小於0,將使用邊界上的最後一個像素
renderer.material.mainTexture.wrapMode=TextureWrapMode.Clamp;
參見:Texture.wrapMode,texture assets.
◆TextureWrapMode.Repear
描述:平鋪紋理,創建一個重複效果
當UV超出0….1範圍,整數部分將被忽略,這樣就創建了一個重複效果。
renderer.material.mainTexture.wrapMode=TextureWrapMode.Repear;
參見:Texture.wrapMode,texture assets.
WrapMode
在沒有時間幀定義的地方如何對待時間

◆WrapMode.ClampForever
描述:播放動畫。當它到達末端時,它將保持在最後一幀但不會停止播放
這個可用於附加的動畫,當它們到達最大時不應該停止播放。
◆WrapMode.Default
描述:從動畫曲線中讀取重複模式,可以被設置為Loop或PingPong
◆WrapMode.Loop
描述:當時間到達動畫剪輯的末端,時間將從開始繼續。
動畫將不會停止播放
◆WrapMode.Once
描述:當時間到達動畫剪輯的末端,剪輯將自動停止播放
◆WrapMode.PingPong
描述:當時間到達動畫剪輯的末端時,時間將在開始和接受之間來回播放
動畫不會停止播放
三、 編輯器類
AnimationClipCurveData

一個AnimationClipCurveData對象包含所有在AnimationClip中表示一個特定曲線所需要的所有信息,這個曲線製作一個附加到遊戲物體/動畫骨骼上的組件/材質屬性的動畫。
注意:這是一個編輯器類。為了使用它你必須放置腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
變量
◆ var curve:AnimationCurve
描述:實際的動畫曲線
◆ var path:string
描述:背動畫的遊戲物體/骨骼的路徑
◆ var propertyName:string
描述:被動畫的屬性的名稱
◆ var target:Object
描述:被動畫的組件/材質
◆ var type:Type
描述:被動畫的組件/材質類型
AnimationUtility

用於修改動畫剪輯的編輯器工具函數
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
類方法
◆ static funciton GetAllCurves(clip:AnimationClip,includeCurveData:boll=ture);
AmimationClipCurveData[]
描述:從一個特定的動畫剪輯上取回所有曲線
如果includeCurveData為假,所有在返回結果中的動畫曲線將為null,當你只想獲取曲線類型和名稱的列表時使用這個。
◆ static funciton GetAnimatableProperties(go:GameObject):AnimationClipCurveData[]
描述:取回附加在改遊戲物體上所有組件/材質上的所有可動畫的屬性
◆ static function GetEditorCurve(clip:AnimationClip,relativePath:string,type:Type,propertyName:string):AnimationCurve
描述:Unity自動在內部組合位置曲線,縮放曲線,選擇曲線
因此變換曲線總是組合的並且它們的關鍵幀總是所有關鍵幀點的聯合。在編輯器中動畫剪輯讓你指定特定的不必組合的編輯器曲線,因此它讓用戶以更直觀的方式編輯曲線。
◆ static function GetFloatValue(root:GameObject,relativePath:string,type:Type,propertyName:string,out data:float):bool
描述:通過採樣特定的遊戲對像上的一個曲線值得到當前的浮點值
用來記錄關鍵幀
◆static function SetEditorCurve(clip:AnimationClip,relativePath:string,type:Type,propertyName:string,curve:AnimationClip):void
描述:Unity自動在內部組合位置曲線,縮放曲線,選擇曲線
因此變換曲線總是組合的並且它們的關鍵幀總是所有關鍵幀點的聯合。在編輯器中動畫剪輯讓你指定特定的不必組合的編輯器曲線,因此它讓用戶以更直觀的方式編輯曲線。
AssetDatabase

一個用來訪問資源並在資源上執行操作的接口
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
類方法
◆static funciton AddObjectToAsset(objectToAdd:bject,assetPath:string):vold
描述:添加objectToAdd到path上已有的資源中
請注意你應該只添加資源到asset資源,例如導入模型或紋理資源將丟失它們的數據
@MenuItem(”eObject/Create Matenal”)
satic function CreateMaterial(){
// 創建一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 給它添加一個動畫剪輯
var animationClip = new AnimationClip();
animationClip.name=“My Clip”;
AssetDatabase.AdObjectToAsset(animationClip,matcrial);
// 添加一個物體後重導入這個資源
// 否則這個改變只會顯示在保持工程的時候
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));
// 打印已創建資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆static funciton AddObjectToAsset(objectToAdd:Object,assetObject:Object):void
描述:添加objectToAdd到由assObject標識的已有資源中
請注意你應該只添加資源到asset資源,例如導入模型或紋理資源將在重新導入或退出時丟失它們的數據
@MenuItem(”GameObject/ Create Matenal”)
satic function CreateMaterial(){
// 創建一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 給它添加一個動畫剪輯
var animationClip = new AnimationClip();
animationClip.name=“My Clip”;
AssetDatabase.AdObjectToAsset(animationClip,matcrial);
// 添加一個物體後重導入這個資源
// 否則這個改變只會顯示在保持工程的時候
AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));
// 打印已創建資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆ static funciton AddPathToGUID(path:string):string
描述:獲得指定path上的資源GUID
◆ static funciton Contains(obj:Object):bool
◆ static funciton Contains(instanceID:int):bool
描述:對像是一個資源
當一個對像是一個資源的時候(對應與Assets文件夾中的一個文件)返回真,否則返回假(例如在場景中的物體,或在運行時創建的物體)
◆ static funciton CopyAsset(path:string,newPath:string):bool
描述:複製在path上的資源並將它存儲在newPaht
◆ static funciton CreateAsset(asset:Object,path:shring):void
描述:在路徑上創建一個新的資源,你必須確保路徑使用一個被支持的擴展名(材質用“mat”立方貼圖用“cubemap”皮膚用“GUISkin”動畫用“anim”並且其他任意的資源用“asset”)
資源被創建後你可以使用AssetDatabaseAddObjectToAsset添加更多資源到文件中,如果資源已經在path上,它將被刪除並創建新的資源
@MenuItem(”GameObject/ Create Matenal”)
satic function CreateMaterial(){
// 創建一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 打印已創建資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆ static funciton DeleteAsset(path:string):bool
描述:刪除路徑上的資源
如果資源被成功刪除返回真,如果它不存在或者不能被移除返回假
◆ static funciton GenerateUniqueAssetPath(path:string):string
描述:為資源產生一個新的唯一路徑
◆ static funciton GetAssetPath(assetObject:Object):string
◆ static funciton GetAssetPath(instanceID:int):string
描述:返回相對於工程文件夾的路徑名,資源被存儲在哪裡
@MenuItem(”GameObject/ Create Matenal”)
satic function CreateMaterial(){
// 創建一個簡單材質資源
var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");
// 打印已創建資源的路徑
Debug.Log(AssetDatabase.GetAssetPath(material));
}
◆ static funciton GetCachedIcon(path:string):Texture
描述:在給定的資源路徑中取回該資源的圖標
◆ static funciton GUIDToAssetPath(guid:string):string
描述:轉換GUID到它當前的資源路徑
◆ static funciton ImportAsset(path:string,options:ImportAssetOptions=ImportAssetOptions.Default):void
描述:導入路徑上的資源
◆ static funciton IsMainAsset(obj:Object):bool
描述:為資源產生一個新的唯一路徑
◆ static funciton IsMainAsset(instaneeID:int):bool
描述:在工程窗口中,該資源是一個主資源
例如,一個導入的模型有一個遊戲物體作為它的根,還有一些網格和子遊戲物體,這個情況下,根遊戲物體是一個主資源
◆ static funciton LoadAllAssetsAtPath(assetPath:string):boject
描述:返回assetPath上的所有資源物體的數值
某些資源文件也許包含多個物體(例如一個Maya文件可能包含多個網格和遊戲物體)assetPath是相對於工程文件夾的路徑
◆ static funciton LoadAllAssetsAtPath(assetPath:string,type:Type):Object
描述:返回給定路徑上的資源,如果它繼承自type
/assetPath是相對工程文件夾的路徑
◆ static funciton LoadMainAssetAtPath(assetPath:string):Object
描述:返回位於assetPath的主資源
/assetPath是相對工程文件夾的路徑
◆ static funciton MoveAsset(oldPath:string,newPath:string):string
參數
oldPath 這個資源的當前路徑
newPath 資源應該被移動到的路徑
返回:string 如果資源被成功移動這個是空字符串,否則是一個錯誤字符串
描述:從一個文件夾移動一個資源到另一個文件夾
◆ static funciton MoveAssetToTrash(path:string):bool
描述:移動路徑上的資源到回收站
如果資源被成功移除返回真,否則為假
◆static funciton OpenAsset(instanceID:int,lineNumber:int=-1):bool
◆static funciton OpenAsset(target:Object,lineNumber:int=-1):bool
描述:在外部編輯器中打開target資源,圖像處理程序或者建模工具,根據資源的類型
如果是一個文本文件,lineNumber指定文本編輯器選擇那一行
◆static funciton Refresh(options:ImportAssetOptions=ImportAssetOptions,Default):void
描述:導入任何改變的資源
導入任何已經改變了內容的或者被從工程文件夾中添加/移除的資源
◆ static funciton RenameAsset(pathName:string,newName:string)“string
參數
pathName 該資源的當前路徑
newName 該資源的新名稱
返回:string 如果資源被成功重命名,是一個空的字符串,否則是一個錯誤字符串
描述:重命名一個資源文件
◆static funciton SaveAssets():void
描述:將未保存的改變寫入磁盤
◆static funciton StartAssetEditing():void
描述:開始資源導入,這可以讓你組織幾個資源導入為一個更大的導入操作
◆static funciton StopAssetEditing():void
描述:停止資源導入,這可以讓你組織幾個資源導入為一個的導入操作
◆static funciton ValidateMoveAsset(oldPath:string,newPath:string):string
參數
oldPath 該資源的當前路徑
newName 這個資源應該被移動到的路徑
返回:string 如果資源被成功重命名,是一個空的字符串,否則是一個錯誤字符串
描述:檢查一個資源文件是否可以被移動到另一個文件夾(並不實際移動這個文件)
參加:AssetDatabase.MoveAsset
Assettlmporter
類,繼承自Object
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
變量
◆var assetPath:string
描述:用於這個導入期的資源的路徑名
類方法
◆staric function GetAtPath(path:string):AssetImporter
描述:為path處的資源收回資源導入期
參加:MobelImporter,TextmreLmporter,AudioImporter
繼承的成員
繼承的變量
Name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstauceID 返回該物體的實例ID
繼承的類函數
Operatorbool 這個物體存在嗎
Instantlate 克隆original物體並返回這個克隆
Destroy 移除一個遊戲物體,組件或資源
DestryImnedinte 立即銷毀物體obj,強力建議使用Destroy代替
FindObjectsOFType 返回所有類型為type的激活物體
FindObjectOFType 返回第一個類型為type的激活物體
Operator== 比較兩個物體是否相同
Operator! = 比較兩個物體是否不相同
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷毀
AssetPostprocessor

AssetPostprocessor讓你進入導入流水線並且在導入資源之前或之後運行腳本
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
這樣你可以在導入設置中重載缺省的值或者修改導入的數據,如紋理和網格
變量
◆var assetImporter:AssetImporter
描述:指向資源導入期
◆var assetPath:string
描述:被導入的資源的路徑名
◆var preview:Texture2D
描述:指定一個自定義的紋理到這個變量以便產生導入資源的預覽
函數
◆function GetPostprocessOrder():int
描述:重載導入期執行的順序
通過重載GetPostprocessOrder你能夠排列後期處理執行的順序,優先級較小的將首先載入
◆function LogError(warning:string,context:Object=null):​​vold
描述:記錄一個導入錯誤到控制台
傳遞一個資源作為第二個參數來連接這個錯誤到編輯器中的資源
參見:DebugLogError
◆function LogWarning(warning:string,context:Object=null):​​vold
描述:記錄一個導入警告道控制台
傳遞一個資源作為第二個參數來連接這個警告到編輯器中的資源
參見:DebugLogError
消息傳遞
◆function OnAssignMaterialModer(renderer:Renderer):Material
描述:取得源材質
返回的材質將被賦予給渲染器,如果返回null,Unity將使用它的缺省材質找到產生方法來分配材質。 soureeMaterial在模型導入並將被銷毀前,OnAssignMaterial之後直接從模型生成。
class MyMeshPostprocessor ​​extends AssetPostprocessor ​​{
function OnAssignMaterialModel (material : Material, renderer : Renderer) : Material
{
var materialPath = "Assets/" + material.name + ".mat";
// 查找在材質路徑上是否有一個材質
// 關閉這個以便總是產生新材質
if (AssetDatabase.LoadAssetAtPath(materialPath))
return AssetDatabase.LoadAssetAtPath(materialPath);
// 使用specular shader創建一個新的資源
// 其他默認值來自模型
material.shader = Shader.Find("Specular");
AssetDatabase.CreateAsset(material, "Assets/" + material.name + ".mat");
return material;
}
}
◆function OnPostprocessAllAssets(importedAssets:string[],deletedAssets:string[],movedAssets:string[],movedFromPath:string[]):void
描述:OnPostprocessAllAssets在一些資源被導入後調用(資源進度欄到達末端)
class MyAllPostprocessor ​​extends AssetPostprocessor ​​{
static function OnPostprocessAllAssets (
importedAssets : String[],
deletedAssets : String[],
movedAssets : String[],
movedFromAssetPaths : String[])
{
for (var str in importedAssets) {
Debug.Log("Reimported Asset: " + str);
}
for (var str in deletedAssets) {
Debug.Log("Deleted Asset: " + str);
}
for (var i=0;i Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]);
}
}
}
◆ function OnPostprocessAudio (clip:AudioClip):void
描述:
◆ function OnPostprocessModel (root:GameObject):void
描述:在子類中重載這個函數以便在模型完全導入後獲得通知
在一個預設被生成為遊戲物體層次前,root是導入模型的根物體
class MyModelPostprocessor ​​extends AssetPostprocessor ​​{
function OnPostprocessModel (g : GameObject) {
Apply(g.transform);
}
// 添加網格碰撞器到每個名稱中包含collider的遊戲物體上
function Apply (transform : Transform)
{
if (transform.name.ToLower().Contains("collider"))
{
transform.gameObject.AddComponent(MeshCollider);
}

// 循環
for (var child in transform)
Apply(child);
}
}
◆ function OnPostprocessTexture (texture:Teture2D):void
描述:在子類中重載這個函數以便在紋理被完全導入並被存儲到磁盤上之前獲取一個通知
//後期處理所有防止文件夾
// "invert color" 中的文件,反轉他們的顏色
class InvertColor extends AssetPostprocessor ​​{
// 使用這個初始化
function OnPostprocessTexture (texture : Texture2D) {
// 後期處理之災文件夾
// "invert color" 或它的子文件夾中的文件
// var lowerCaseAssetPath = assetPath.ToLower();
// if (lowerCaseAssetPath.IndexOf ("/invert color/") == -1)
//return;
for (var m=0;m {
var c : Color[] = texture.GetPixels(m);
for (var i=0;i {
c[i].r = 1 - c[i].r;
c[i].g = 1 - c[i].g;
c[i].b = 1 - c[i].b;
}
texture.SetPixels(c, m);
}
// 不需要設置每個mip map 等級圖片的像素你也可以只修改最高mip等級的像素並使用texture.Apply(TRUE);來產生較低mip等級
}
}
◆ function OnPreprocessAudio ():void
描述:
◆ function OnPreprocessModel():void
描述:在子類中重載這個函數以便在模型被導入前獲得一個通知
這個可以讓你為模型的導入設置默認值
class MyMeshPostprocessor ​​extends AssetPostprocessor ​​{
function OnPreprocessModel () {
// 禁用材質生成,如果文件包含@號,表明他是動畫
if (assetPath.Contains("@")) {
var modelImporter : ModelImporter = assetImporter;
modelImporter.generateMaterials = 0;
}
}
}
◆ function OnPostprocessTexture():void
描述:在子類中重載這個函數以便在紋理導入器運行前獲得一個通知,
這個可以讓你導入設置為默認值
// Postprocesses all textures that are placed in a folder
// "invert color" to have their colors inverted.
class InvertColor extends AssetPostprocessor ​​{
// Use this for initialization
function OnPostprocessTexture (texture : Texture2D) {
// Only post process textures if they are in a folder
// "invert color" or a sub folder of it.
// var lowerCaseAssetPath = assetPath.ToLower();
// if (lowerCaseAssetPath.IndexOf ("/invert color/") == -1)
// return;
for (var m=0;m var c : Color[] = texture.GetPixels(m);
for (var i=0;i {
c[i].r = 1 - c[i].r;
c[i].g = 1 - c[i].g;
c[i].b = 1 - c[i].b;
}
texture.SetPixels(c, m);
}
// Instead of setting pixels for each mip map levels, you can also
// modify only the pixels in the highest mip level. And then simply use
// texture.Apply(true); to generate lower mip levels.
}
}
AudioImporter

繼承自AssetImporter
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
這個類的設置於Audio Import Settings中相同
變量
◆var channels:AudioImporterChannels
描述:導入音頻的聲道數
參見:AudioImporterChannels.
◆var compressionBitrate:float
描述:Ogg Verbix 壓縮比特率
這個值以比特率為對單位,例如:128000應該是128kbps
◆var decompressOnLoad:bool
描述:Ogg Verbix音頻應該在加載時解壓
◆var format:AudioImporterFormat.
描述:導入音頻的格式
參見:AudioImporterFormat.
繼承的成員
繼承的變量
assetPath
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstanceID 返回該物體的實例ID
繼承的類函數
GetAtpath 為path處的資源取回資源導入器
Operatorbool 這個物體存在嗎
Instannate 克隆original物體並返回這個克隆
Desiroy 移除一個遊戲物體,組件或資源
DestroyImmediate 立即銷毀物體obj,強力建議使用Destroy代替
FindObjectsOFType 返回所有類型為type的激活物體
FindObjectOFType 返回第一個類型為type的激活物體
Operator== 比較兩個物體是否相同
Operator! = 比較兩個物體是否不相同
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷毀
ModelImporter

繼承自AssetImporter
ModerlImporter讓你從腳本編輯器中修改model的導入設置
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
這個類的設置與Mesh Import Settings中相同
變量
◆var addCollider:bool
描述:為導入的網格添加網格編輯器
◆var bakeIK:bool
描述:導入時烘焙IK
◆var clipAnimations:ModelImporterClipAnimation[]
描述:風格動畫得到的動畫剪輯
參見splitAnimation,ModelImporterClipAnimation
◆var generateAnimations:ModelImporterGenerateAnimations
描述:動畫生成選項
參見ModelImporterGenerateAnimations
◆var generateMaterials:ModelImporterGenerateMaterials
描述:材質生成選項
參見ModelImporterGenerateMaterials
◆var globalScale:float
描述:用於導入的全局縮放因子
◆var normalSmoothi​​ngAngle:float
描述:平滑角度來計算發現
計算法線時,尖銳的邊緣怎樣被變成一個硬邊
參見:recalculateNormals
◆var recalculateNormals:bool
描述:導入時是否重新計算法線
參見:normalSmoothi​​ngAngle
◆var reduceKeyframes:bool
描述:為動畫執行關鍵幀縮減
◆var splitAnimations:bool
描述:導入時動畫是否應嘎被分割為多個剪輯
參見:clipAnimations
◆var splitTangentsAcrossSeams:bool
描述:切線是否跨越uv接縫分割
◆var swapUVChannels:bool
描述:導入時切換主副UV通道
繼承的成員
繼承的變量
assetPath
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstanceID 返回該物體的實例ID
繼承的類函數
GetAtpath 為path處的資源取回資源導入器
operatorbool 這個物體存在嗎
Instannate 克隆original物體並返回這個克隆
Desiroy 移除一個遊戲物體,組件或資源
DestroyImmediate 立即銷毀物體obj,強力建議使用Destroy代替
FindObjectsOFType 返回所有類型為type的激活物體
FindObjectOFType 返回第一個類型為type的激活物體
Operator== 比較兩個物體是否相同
Operator! = 比較兩個物體是否不相同
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷毀
TextureImporter

繼承自AssetImporter
紋理導入器可以讓你從編輯器腳本中修改Texture2D的導入設置
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
這個類的設置與Texture Import Settings.中相同
變量
◆var borderMipmap:bool
描述:保持產生mipmap時的相同紋理邊界
◆var convertToNormalmap:bool
描述:轉化高度圖為法線貼圖
◆var correetGamma:bool
描述:mipmap應使用伽馬校正生成
參見:mipmapEnabled
◆var fadeout:bool
描述:淡出mip等級為灰色
參見:mipmapEnabled
◆var generateCubemap:TextureImporterGeneraterCubemap
描述:立方貼圖生成模式
參見:TextureImporterGeneraterGubemap
◆var grayscaleToAlpha:float
描述:從灰度生成alpha通道
◆var heightmapScal:int
描述:最大紋理尺寸
較大的紋理將在導入時被縮小
◆var mipmapEnabled:bool
描述:為這個紋理生成Mipmap
◆var mipmapFadeDistanceEnd:float
描述:紋理完全淡出的mip等級
參見:mipmapEnabled,fadeout,mipmapFadeDistanceStart
◆var mipmapFadeDistanceStart:float
描述:紋理開始淡出的mip等級
參見:mipmapEnabled,fadeout,mipmapFadeDistanceStart
◆var mipmapFilter:TextureImporterMipFilter
描述:Mipmap過濾模式
參見:TextureImporterNormalFilter,mipmapEnabled
◆var normalmapFilter: TextureImporterNormalFilter
描述:法線圖過濾模式
參見:TextureImporterNormalFilter,convertTONormalmap
◆var npotSeale:TextureImporterNPOTScale
描述:非2的幕次尺寸紋理的縮放模式
參見:TextureImporterNPOTScale
◆var recommendedTextureFormat:TextureImporterFormat
描述:自動決定最好的紋理格式(只讀)
參見:TextureImporterFormat
◆var textureFormat:TextureImporterFormat
描述:導入紋理的格式參見:TextureImporterFormat
繼承的成員
繼承的變量
assetPath
name 對象的名稱
hideFlags 該物體是否被隱藏,保存在場景中或被用戶修改
繼承的函數
GetInstanceID 返回該物體的實例ID
繼承的類函數
GetAtpath 為path處的資源取回資源導入器
operatorbool 這個物體存在嗎
Instannate 克隆original物體並返回這個克隆
Desiroy 移除一個遊戲物體,組件或資源
DestroyImmediate 立即銷毀物體obj,強力建議使用Destroy代替
FindObjectsOFType 返回所有類型為type的激活物體
FindObjectOFType 返回第一個類型為type的激活物體
Operator== 比較兩個物體是否相同
Operator! = 比較兩個物體是否不相同
DontDestroyOnLoad 加載新場景時確保物體target不被自動銷毀
AssetPostprocessor

AssetPostprocessor讓你進入導入流水線並在導入資源之前或之後運行腳本
注意:這是一個編輯器類。為了使用它你必須防止腳本到工程文件夾的Assets/Editor中,編輯器類位於UnityEditor命名空間因此對於C#腳本你需要在腳本開始位置添加“usingUnityEditor”
這樣你可以在導入設置中重載缺省的值或則修改導入的數據,如貼圖和網格
變量
◆var assetImporter:AssetImporter
描述:指向資源導入器
◆var assetPath:string
描述:被導入的資源的路徑名
◆var preview:Texture2D
描述:指定一個自定義的紋理到這個變量以便產生導入資源的預覽
函數
◆function GetPostprocessOrder():int
描述:重載導入器執行的順序
通過重載GetPostprocessOrder你能夠排列後期處理執行的順序,優先級較小的將首先載入
◆function LogError(warning:string,context:Object=null):​​vold
描述:記錄一個導入錯誤到控制台
傳遞一個資源作為第二個參數來連接這個錯誤到編輯器中的資源
參見:DebugLogError
◆function LogWarning(warning:string,context:Object=null):​​vold
描述:記錄一個導入警告道控制台
傳遞一個資源作為第二個參數來連接這個警告到編輯器中的資源
參見:DebugLogError
消息傳遞
◆function OnAssignMaterialModer(renderer:Renderer):Material
描述:取得源材質
返回的材質將被賦予給渲染器,如果返回null,Unity將使用它的缺省材質找到產生方法來分配材質。 soureeMaterial在模型導入並將被銷毀前,OnAssignMaterial之後直接從模型生成。
class MyMeshPostprocessor ​​extends AssetPostprocessor ​​{
function OnAssignMaterialModel (material : Material, renderer : Renderer) : Material
{
var materialPath = "Assets/" + material.name + ".mat";
// 查找在材質路徑上是否有一個材質
// 關閉這個以便總是產生新材質
if (AssetDatabase.LoadAssetAtPath(materialPath))
return AssetDatabase.LoadAssetAtPath(materialPath);

// 使用specular shader創建一個新的資源
// 其他默認值來自模型
material.shader = Shader.Find("Specular");
AssetDatabase.CreateAsset(material, "Assets/" + material.name + ".mat");
return material;
}
}
◆function OnPostprocessAllAssets(importedAssets:string[],deletedAssets:string[],movedAssets:string[],movedFromPath:string[]):void
描述:OnPostprocessAllAssets在一些資源被導入後調用(資源進度欄到達末端)
class MyAllPostprocessor ​​extends AssetPostprocessor ​​{
static function OnPostprocessAllAssets (
importedAssets : String[],
deletedAssets : String[],
movedAssets : String[],
movedFromAssetPaths : String[])
{
for (var str in importedAssets) {
Debug.Log("Reimported Asset: " + str);
}
for (var str in deletedAssets) {
Debug.Log("Deleted Asset: " + str);
}
for (var i=0;i Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]);
}
}
}

_________________
歡迎大家多多交流~

avatar
aaa1218bbb
社員
社員

文章數 : 65
積分 : 2144
注冊日期 : 2011-11-22

檢視會員個人資料 http://design.gugebb.com

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章