上一篇:
第二节
创建Scripts文件夹,创Building C#,int id 创造一个编号放数组,为建筑种类排序,方便后期调用 ,int cost 花费,string name 建筑名,提示name为object.name类下默认变量名,故改名buildingName,
Materials下新建材质球,ctrl+d复制3个,总共4个,再新建文件夹Textures,三个png贴图拉进来,放到对应材质球的albedo上。反射率在所有方向上的积分,称为反照率。road自建颜色当材质。
根目录下创Models文件夹,放3个模型,若有mtl(materiallab库文件)则自动创,这里我们不需要,删掉自己创材质。
拖放一个factory到地图,方便观察,切布局为默认。之前说过,通过grid化地图,做到1x1坐标放置一个建筑,我们要修改模型scale,这里改为0.05,参考方法是,新建一个cube(标准1x1),放到1,1,1,factory也是,这样,可以看到刚好在1x1内。依次修改house和farm的scale,再放置到地图检测。
加贴图材质到对应3个模型,查看game视图效果,pretty good,发现小问题,house和factory默认方向不对,我们去hierarchy改对应模型下面的mesh网格摆放,为什么不直接旋转模型方向呢。我们不希望每次生成新的模型,还需要调整模型默认摆放位置,修改模型下面的网格默认方向,可以做到每次生成新的模型,默认方向都是合适,不再需要一一旋转了。
house,转y轴180,farm不用改,factory 转y轴270或者-90都行,保证三个模型带有色彩的正门面向屏幕。
hierarchy创建一个empty,改名road,下面创一个3d cube模型当作road的模型,cube scale y方向改为0.01即可,命名road,为什么不用plane,plane默认是10x10网格,triangle三角面太多,影响渲染执行效率,我们这里只需要简单单色展示一小块路即可。为什么默认plane是10x10,方便点光源渐变渲染效果,方便建筑分段渲染,比如大楼,拉近查看,镜头外的分块不会渲染,如果只有1x1格,则镜头外也会渲染,增加机器负担,因此不一定是1x1就好,看具体游戏和需求自己调整。Road 贴图加到road 模型上,活的贴图材质效果。
再次查看模型效果,发现阴影不对,这是模型制作软件类型不同导致,我们通过调整系统光照修改shadow效果,通过directional light,修改strengh,bias等,达到合适的效果。
然后将building C#脚本加到4种建筑上。按左下角顺序编号0-3,填写各字段内容
确认无误后,assets目录下新建Prefabs文件夹,将4个配置好了的模型依次拖入,获得成品预制体。road预制体可能需要调整模型位置xz轴归零,然后apply,这样所有预制体都会随之更新,这也是预制体的特点,一改全改。
下一篇: