第五章 地形

上一章我们使用img作为地形,但是在Unity中,地形有几种做法。目前我使用过的有三种:Image、Terrain、Tile Palette。

对比项目ImageTerrainTile Palette
创建方式通过在场景中放置单个或多个图片来组合成地形在 Unity 中使用地形工具进行高度图绘制等操作来创建地形将多个图块组合成调色板,通过绘制操作快速搭建地形
灵活性较高,可通过各种图片组合实现各种形状和风格的地形,但布局较为繁琐相对较高,可通过地形工具绘制出复杂的地形起伏,但不太适合精确的 2D 图形绘制中等,能通过图块组合创建多种地形,但受限于图块的预设和拼接规则
细节表现可以通过高分辨率图片展示丰富细节,但需要手动处理每个图片的细节可以通过纹理等方式表现一定细节,但在 2D 场景中可能不如专门的 2D 图形精细取决于图块的细节程度,单个图块细节有限,但组合起来可呈现丰富效果
性能消耗大量使用时可能导致性能问题,因为每个图片都是独立的渲染对象在 2D 游戏中一般性能消耗比 Image 低,但如果地形过于复杂也可能影响性能性能较好,图块地图可作为整体渲染,减少渲染批次
编辑难度单个图片编辑容易,但组合成复杂地形时编辑和调整布局较麻烦需要一定时间学习地形编辑工具,对高度图等概念有一定要求需要掌握图块的使用和拼接规则,自定义图块脚本有一定编程门槛
适用场景适合需要特定图形样式、少量且不规则地形元素的场景,如 2D 解谜游戏中的特殊道具、装饰等不太适合纯粹的 2D 游戏地形创建,更适用于有一定地形起伏需求的 2.5D 游戏或对地形要求不高的 2D 游戏适合 2D 平台游戏、像素风格游戏、需要快速搭建大量重复性地形的 2D 游戏

OK,所以作为不会变化的竞技场外圈,Tile Palette显然是最优化性能的做法了。

菜单栏的Windows下 选择2dobject里面的Tile Palette。创建新的tile并保存在单独的文件夹内。

 然后沿着之前的墙壁绘图,并添加Tilemap Collider 2D。

之后继续拖入其他纹理,绘制圆角边缘,如图:

 接下来,在Unity Store下载免费资源:Free Platform Game Assets

导入项目后,使用各种元素装点地形:

图中因为摇杆过于明显,遮住了视野,降低他的透明度。

下一步是使场景合理,比如实现穿过灌木丛的效果,高于灌木丛则被遮挡,走过去就遮挡灌木丛。应该好理解。 

 所以设置一下角色的锚点作为底部中心,并重新修改碰撞collider。

对所有地图的点缀元素 进行同样操作。

接下来新建一个SpriteSorter脚本,使图层自动排序,并为角色与场景元素添加此脚本。

脚本内容:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SpriteSorter : MonoBehaviour
{
    [Header("元素")]
    private SpriteRenderer spriteRenderer;
    // Start is called before the first frame update
    void Start()
    {
        spriteRenderer = GetComponent<SpriteRenderer>();    
    }

    // Update is called once per frame
    void Update()
    {
        spriteRenderer.sortingOrder = -(int)(transform.position.y * 10);
    }
}

不懂得直接代码复制拉入ai,让他们加上中文注释以及解释。比如豆包通义

这也是一种快速学习的方法,尤其是阅读大佬的源码读不懂的时候问Ai特别管用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值