unity3d 基础知识点

1、prefab:

  提供类似于c++中类的概念,方便用户建立对象。比如在建立碰撞盒的时候,可以建立prefab,方便同时修改碰撞盒的现实和隐藏。

  当制作好了游戏组件(场景中的任意一个gameobject),我们希望将它制作成一个组件模版,用于批量的套用工作,例如说场景中本质上“重复”的东西,“敌人”,“士兵”,“子弹”。。。。。。这里说本质是因为默认生成的prefab其实和模版是一模一样的,就像是克隆体,但生成的位置和角度以及生成后的一些属性是允许发生变化的。

 

2、透明贴图

 unity3d中自带的shader没有提供一种支持:透明贴图层+漫反射贴图层的shader。因此在使用透明贴图的时候,需要将透明贴图制作为PNG格式。 使用transparent——>bump diffse shader;

 

3、系统天空盒 

Edit --> skybox. solid color:any empty options of screen will display the current camera's backgroung color. 托想去除天空盒接缝,照片的wrap mode修改为clamp.

 

4、untiy数据包的打包输出:

BuildPipeline.BuildAssetBundle:将任意类型的资源打包成AssetsBundle文件。

BuildPipeline.BuildAssetBundleExplocitAssetNames:同上,但是可以为每个对象制定一个自定义的名字,方便查找。
BuildPipeline.BuildStreamedSceneAssetBundle:直接将一个或多个场景打包成AssetsBundle文件。
 
5、untiy将数据包加载到AssetBundle:
WWW.assetBundle:将网上下载的数据包加载到内存中,创建AssetBundle对象。
AssetBundle.CreateFromFile:用磁盘文件创建一个AssetBundle对象,并加载到内存中。(CreateFromFile是同步的仅支持创建非压缩格式的assetBundle)
AssetBundle.CreateFromMemory:从内存数据流创建AssetBundle内存对象。(异步的,要与协同配合使用。还可以加载压缩的assetBundle)
AssetBundle.CreateFromMemoryImmediate:从内存数据流立刻创建AssetBundle内存对象。U3D4.5.2新加的API函数,可以不用协同函数,而是通过文件流直接创建,但是注意,如果是从W3类里的BYTE里创建,W3本身还是得使用协同函数。CreateFromMemoryImmediate支持压缩的AssetBundle 。
 
6、从AssetBundle对象中加载资产:
AssetBundle.Load:通过名字从AssetBundle中加载资产,也可以通过参数指定类型。
AssetBundle.LoadAsync:同上,但是是异步加载,不影响主线程执行。
AssetBundle.LoadAll:一次性加载AssetBundle文件中的所有资产。
Application.LoadLevel:通过名字或索引载入AssectBundle文件中对应的场景。当载入新场景时,所有之前的游戏对象都会被销毁。
Application.LoadLevelAsync:同上,但是是异步加载不影响住线程继续执行。
Application.LoadLevelAdditive:添加新场景,之前的游戏对象保留。
Application.LoadLevelAdditiveAsync:同上,但是是异步加载。
 
7、AssetBundle、资产和游戏对象的卸载:
AssetBundle.Unload(false):卸载AssetBundle自身。
AssetBundle.Unload(true):卸载AssetBundle自身和所有从该AssetBundle中加载的资产。
Resources.UnloadUnusedAssets():卸载整个系统中所有没有使用的资产。
GameObject.Destroy:卸载通过GameObject.Instantiate实例化的游戏对象。
posted @ 2015-08-04 00:03  一傻小冲  阅读(556)  评论(0编辑  收藏  举报