Unity3D脚本中文系列教程(十五)

◆ 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.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<movedAssets.Length;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<texture.mipmapCount;m++)
        {
            var c : Color[] = texture.GetPixels(m);
            for (var i=0;i<c.Length;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<texture.mipmapCount;m++) {
            var c : Color[] = texture.GetPixels(m);
            for (var i=0;i<c.Length;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 normalSmoothingAngle:float
描述:平滑角度来计算发现
计算法线时,尖锐的边缘怎样被变成一个硬边
参见:recalculateNormals
◆var recalculateNormals:bool
描述:导入时是否重新计算法线
参见:normalSmoothingAngle
◆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<movedAssets.Length;i++) {
            Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]);
        }
    }
}

你可能感兴趣的:(Unity3D脚本中文系列教程(十五))