首页 > 其他分享 >Unity 学习记录

Unity 学习记录

时间:2024-12-21 11:19:32浏览次数:6  
标签:2D Palette Collider 记录 Tilemap 学习 Unity 瓦片 Tile

大二做游戏的学习记录

2D地图制作

Tilemap

是用来创建2d游戏地图的工具,允许使用Tile(瓦片)来拼接和绘制出一个大型的2D游戏场景
只适用于显示地图,不直接进行物理交互

如何使用Tilemap制作地图?

步骤 1: 创建 Tilemap 游戏对象
创建一个 2D 项目(如果你还没有创建的话)。
在 Hierarchy 面板中,右键点击空白处,选择 2D Object -> Tilemap -> Rectangular。
这将创建一个新的 Tilemap 对象,并自动在下方创建一个 Grid 对象。Grid 对象用于管理 Tilemap 的网格。
你会在 Hierarchy 面板看到:
Grid:父物体,管理 Tilemap 的布局。
Tilemap:子物体,包含具体的瓦片数据。

步骤 2: 创建瓦片资源(Tiles)
瓦片(Tiles)是地图的构建块。你需要将图像(Sprite)转化为瓦片资源。

导入图像:

首先,确保你已经将游戏中的瓦片图集(Tile Sheet)导入到 Unity 中。这通常是一个包含多个瓦片的小图片,像是草地、道路、墙壁等。
将图像文件拖拽到 Unity 的 Project 面板中。
切割图集(Sprite Sheet):

选中图像文件,在 Inspector 面板中将 Sprite Mode 改为 Multiple。
点击 Sprite Editor 按钮,进入精灵编辑器。
在精灵编辑器中,点击 Slice 按钮,选择 Grid By Cell Size 或 Grid By Cell Count,根据你瓦片的大小或数量进行切割。
确保每个瓦片的大小一致,并切割成你想要的瓦片。
创建瓦片(Tiles):

切割完成后,选中每一个切割出来的单个瓦片,在 Project 面板中右键点击图像,选择 Create -> Tile。
每个切割出的瓦片都会变成一个 Tile 资源。你可以将这些瓦片命名为:GrassTile、WallTile 等等。

步骤 3: 创建 Tilemap 并绘制地图
选择 Tilemap:

在 Hierarchy 面板中,选中你的 Tilemap 对象。
打开 Tile Palette:

在 Unity 编辑器的顶部菜单栏,选择 Window -> 2D -> Tile Palette,打开 Tile Palette 窗口。
Tile Palette 是一个绘制瓦片的工具,它显示你所有的瓦片资源,并允许你将这些瓦片绘制到 Tilemap 上。
将瓦片拖入 Tile Palette:

在 Project 面板中找到你创建的 Tile 资源,将它们拖动到 Tile Palette 窗口中。你可以创建多个 Tile Palette,每个 Palette 可以包含不同类型的瓦片(例如,草地、道路、墙壁等)。
选择绘制工具:

在 Tile Palette 中选择你想要的瓦片,接着使用画笔工具在 Scene 视图中的 Tilemap 上绘制瓦片。
你可以使用不同的绘画工具:
Brush:单个瓦片绘制工具。
Box Fill:填充区域内的所有瓦片。
Flood Fill:用选中的瓦片填充整个区域。
Erase:删除已绘制的瓦片。

步骤 4: 添加碰撞体和物理效果
添加 Tilemap Collider 2D:

如果你的地图需要碰撞体(例如玩家和其他物体不能穿过墙壁),你需要为 Tilemap 添加 Tilemap Collider 2D 组件。
选择 Tilemap 对象,在 Inspector 面板中点击 Add Component,然后选择 Tilemap Collider 2D。
这将自动为每个瓦片添加一个 2D 碰撞体。
优化碰撞体(使用 Composite Collider):

如果 Tilemap 中的瓦片很多,碰撞体的数量会非常大。为了优化性能,你可以使用 Composite Collider 2D 来合并多个碰撞体。
选中 Tilemap 对象,再添加 Composite Collider 2D 组件。
同时,确保 Tilemap Collider 2D 组件的 Used by Composite 选项被勾选。
为动态物体添加物理效果(Rigidbody 2D):

如果你的角色或其他物体需要与 Tilemap 进行物理交互,记得为这些物体添加 Rigidbody 2D 组件。

Tilemap Renderer

是负责将 Tilemap 中的瓦片渲染到屏幕上的组件。它决定了如何渲染 Tilemap,通常你可以在该组件的属性面板中设置瓦片的渲染顺序、材质、排序层等。
Sorting Layer:你可以设置 Tilemap 渲染的层级,控制它与其他物体(如角色、敌人等)的显示顺序。
Order in Layer:调整瓦片在排序层中的显示顺序。

Tilemap Collider 2D

Tilemap Collider 2D 是 Tilemap 的物理碰撞体,它可以自动根据 Tilemap 中的瓦片形状创建相应的碰撞体。这意味着你无需为每个瓦片手动添加碰撞体,Tilemap Collider 会自动为所有瓦片生成 2D 碰撞体。
当角色或物体与 Tilemap 上的瓦片发生碰撞时,碰撞体会检测到并进行物理响应。

标签:2D,Palette,Collider,记录,Tilemap,学习,Unity,瓦片,Tile
From: https://www.cnblogs.com/lichunlei/p/18620553

相关文章

  • 强化学习算法中的log_det_jacobian
    相关:https://colab.research.google.com/github/google/brax/blob/main/notebooks/training_torch.ipynb之前写过一篇同主题的文章,后来发现这个文章中有一些问题,不过也有些不好改动,于是就新开一篇来进行更正和补充!!!之前版本:https://www.cnblogs.com/xyz/p/18564777之所以之......
  • 深度学习笔记——VQ-VAE和VQ-VAE-2
    本文详细介绍VQ-VAE和VQ-VAE-2的原理和训练过程,为后面的dVAE在DALLE中的使用打下坚实的基础。文章目录AE和VAEVQ-VAE传统VAE的问题VQ-VAE与VAE的对比VQ-VAE的主要改进VQ-VAE的核心思想VQ-VAE模型结构1.编码器(Encoder)2.向量量化层(VectorQuantization......
  • Unity中实现通过控制Scroll View内物体顺序来做排序
    Unity中实现通过控制ScrollView内物体顺序来做在Unity开发中,ScrollView是一个非常常用的UI组件,用于展示一系列可以滚动查看的内容。有时候,我们可能需要允许玩家或用户通过按键来控制这些内容的顺序,比如在一个游戏的选择界面或菜单中。本文将介绍如何实现这一功能。一、......
  • 你有主动去学习了解过HTML的标准规范吗?
    是的,我主动去学习并了解过HTML的标准规范。在前端开发中,HTML是构建网页结构的基础,了解并遵循HTML的标准规范对于确保网页的正常显示、提高用户体验以及保障网站的可访问性和兼容性都至关重要。我通过以下方式学习和了解HTML的标准规范:阅读官方文档:我查阅了W3C(万维网联盟)等权威......
  • AI开发:支持向量机(SVM)鸢尾花模型入门教程- Python 机器学习
    最近接触了一些数据分析的任务,越来越多地听到支持向量机(SVM),之前我们也一起学习过 AI开发:支持向量机(SVM)入门教程-Python机器学习今天我们再由浅入深的地来重温和学习这个AI算法,以便我们进一步掌握如何熟悉和使用这一AI大杀器。SVM用在哪里 --文本分类垃圾邮件过滤:通......
  • 在职研生活&学习--20241213~因缘际会,相聚一堂——中南大学2024级MBA综合5班“五班卓越
      在银装素裹的冬日12月,中南大学2024级MBA综合5班的故事悄然展开,一场别开生面的班级团建活动成为了我们共同的记忆。为了进一步增强班级凝聚力,促进同学们之间的了解与友谊,综合5班于12月13日精心策划并成功举办了一场主题为“五班卓越,中南风采”的班级团建活动。活动在一片......
  • Linux常用操作(命令查询网址&炒鸡无敌基础学习网址)
    命令查询网址&基础学习网址Linux命令查询网址:Linux命令搜索引擎命令,LinuxLinux命令搜索引擎命令详解:最专业的Linux命令大全,内容包含Linux命令手册、详解、学习,值得收藏的Linux命令速查手册。-Linux命令搜索引擎基础学习网址:鳥哥私房菜-鳥哥的首頁书:鸟哥的Linux私房......
  • 【机器学习案列】使用随机森林(RF)进行白葡萄酒质量预测
    ......
  • 记录关于Jetson nano的一些事情
    题记关于拿到手里的第一块板子JetsonNano,总是不知道怎么使用,,所以这篇博客主要用来记录一些必装软件或者是一些重要的配置步骤或者使用技巧等,以及一些可能会需要注意到的细节。正文安装IDE--VScode由于Jetsonnano采用的是Arm64架构,所以需要安装对应的版本的Vscode来进行代码......
  • WEB开发 - Flask 入门:由浅入深地带你学习
    Flask是一个轻量级的PythonWeb框架,比起Node.js,ASP .netCore等Web框架,它更适合初学者学习。它的设计哲学是简洁和灵活,旨在让开发者专注于功能实现,而不是配置和过多的框架限制。下面,我将以由浅入深的方式,一起来一步步理解和掌握Flask,帮助初学者打下一个比较扎实的Web......