Unity3D仿星露谷物语开发29之创建农舍小屋场景

1、目标

创建第3个场景,农舍小屋的场景。这里我们复习下Tilemap的使用,同时通过配置组件实现场景间的切换。

2、创建农舍小屋的Palette

(1)创建Palette预设体

选择Tile Palette面板,点击Create New Palette。

命名为IndoorsTileSet。

选择保存到Assets -> Tilemap -> Tile Palettes目录下。

此时Tile Palettes就会出现刚初始化的IndoorsTileSet.prefab文件。

(2)Palette预设体赋值

选择Assets -> Sprites -> Sprite Textures -> Tile Sprites下的IndoorsTileSet文件,拖到Tile Palette界面下。确保Active Palette为IndoorsTileSet。

然后立即就会弹出提示保存的目录,选择Assets -> Tilemap -> Tiles -> IndoorsTileSet(新建的)目录下。

保存完成后,IndoorsTileSet的内容就有了Sprites图片信息。

同时IndoorsTileSet.prefab文件大小也发生了变更。

(3)小结

通过Create New Palette我们创建了Palette的预设体放到Tile Palettes目录下,通过拖拽Sprites到Palette预设体完成了Palette预设体的赋值,同时Palette预设体的图片存放到了Tiles -> IndoorsTileSet目录下。

3、创建Cabin场景

(1)初始化场景

在Assets -> Scenes 下创建新的场景命名为Scene3_Cabin。

右击Scene3_Cabin选择Open Scene Additive。

删除Scene3_Cabin下的Main Camera,因为PersistentScene下已经有Main Camera。

(2)创建Tilemap地图

将Assets -> Prefabs -> Maps下的Tilemap Grid拖到Hierarchy -> Scene3_Cabin下,

同时右击Tilemap Grid选择Prefab -> Unpack Completely(切断关联,提升性能)。

(3)添加Items对象

右击Hierarchy -> Scene3_Cabin,创建新物体命名为Items,并且修改其Tag为ItemsParentTransform。

(4)添加BoundsConfiner

将Assets -> Prefabs -> Scene下的BoundsConfiner拖到Scene3_Cabin下。

注意:Tilemap Grid / Items / BoundsConfiner 这3个物体是同级别的。

(5)绘制地图

1)Active Target选择Ground1,绘制木制地板。

2)Active Target选择Ground2,绘制地板的边缘

绘制4个角和4条边。

3)Active Target选择Ground1,绘制墙壁和窗户

4)Active Target选择Ground1,绘制房屋边框

同时进门口增加一些木地板。

5)Active Target选择Ground2,绘制地毯

6)Active Target选择Collisions,添加碰撞器

4、调整BoundsConfiner边界

在Inspector界面,选择Edit Collider调整边界。

整体要略大于房屋的大小。

5、添加SceneTeleport

(1)Scene3添加SceneTeleport

将Assets -> Prefabs -> Scene下的SceneTeleport拖到Scene3_Cabin下。

在Scene界面中调整SceneTeleport对象的位置,并且修改Size参考如下:

卸载Scene3_Cabin场景,加载Scene1_Farm场景,通过Tile Palette的Coordinate Brush工具找到门口的坐标为(-10,-7,0)。

卸载Scene1_Farm场景,加载Scene3_Cabin场景,Scene Teleport中的Scene Position Goto设为(-10,-7,0)。

同样,在Scene3_Cabin中,我们找到门口的位置为(-2,-6,0), 不要与SceneTeleport重叠。后续从Scene1_Farm可以跳转到Scene3_Cabin的该位置。

(2)Scene1添加SceneTeleport

卸载Scene3_Cabin场景,加载Scene1_Farm场景。

将SceneTeleport拖入到Scene1_Farm中,调整Size的大小。

打开Collisions的renderer渲染,避免SceneTeleport完全在Collisions的里面(那样用户就永远走不到SceneTeleport的位置),稍微有一点不重合即可。

设置Scene Position Goto为(-2.5,-6,0)

重命名两个Scene Teleport的名称。

6、放置家具

(1)创建桌/椅

在Assets -> Prefabs -> Item下创建新的目录命名为Furniture。

将Assets -> Sprites -> Sprite Textures -> Objects下的Chair和Table分别放到Scene中。

设置Sorting Layer为Instances。

将Chair / Table 放到Furniture生成预设体。

创建完毕后如下:

(2)添加碰撞体

点击Chair这个预设体,添加Box Collider 2D组件,编辑碰撞位置为椅脚部分,Sprite Sort Point为Pivot(否则人站在椅子后面,但是却显示在椅子前面)。

点击Table这个预设体,添加Box Collider 2D组件,编辑碰撞位置如下。

整体界面效果如下:

PS:每次运行时,都要卸载掉Scene1/Scene2/Scene3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值