zoukankan      html  css  js  c++  java
  • Unity3D脚本中文系列教程(十五)

    http://dong2008hong.blog.163.com/blog/static/4696882720140322449780/

    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]);
            }
        }
    }

  • 相关阅读:
    水晶苍蝇拍:到底怎样把握企业的内在价值? (2010-12-29 15:37:11)
    水晶苍蝇拍:个人投资者必须学会扬长避短 (2010-12-24 12:04:59)
    水晶苍蝇拍:公司研究不要“就事论事”而要“逻辑支点” (2010-12-23 10:58:23)
    水晶苍蝇拍:再高的学识也扛不住“浮躁” (2010-12-03 08:31:33)
    水晶苍蝇拍:人生不同阶段的投资规划 (2010-12-01 08:20:13)
    水晶苍蝇拍:好公司的3个判断维度:成长前景-机会程度-生意属性 (2010-11-29 08:32:30)
    水晶苍蝇拍:我为什么不会重仓买入银行股? (2010-11-28 10:20:00)
    水晶苍蝇拍:投资随谈之:关于股价的“溢价与泡沫” (2010-11-25 08:21:01)
    fgets汉字问题
    sizeof('a')
  • 原文地址:https://www.cnblogs.com/123ing/p/3912112.html
Copyright © 2011-2022 走看看