July 28, 2024
Views : 👀

Unity出题-素材设计篇

前言

缘起

c语言的exe出题出腻了 想了解一下unity相关的知识

出题思路

根据超级玛丽这个游戏,想到一种闯关的游戏,作为新生可能这个难度挺难的,全新的语言,全新的东西,

得到flag给新生两种方式

1 破解游戏,如果人物可以穿过空气墙,就可以看到绘制在地图上的flag

2 如果破解游戏困难的话,留给他们一个在c#里的加密算法,应该会加上混淆,因为算法这个实在是没啥考的,就看他们能不能解密出来了,如果直接破解去穿墙,那就十分方便了。


正篇

环境装配

在电脑上安装unity的环境,现在的版本在下载时都需要通过下载Unity Hub这个集成社区软件来安装不同版本的unity,然后创建项目,我们只要去官网注册好账号,按照步骤依次下载就完成

https://unity.cn/

素材收集

起初的思路是制作马里奥的素材,因为网络上也是这类教程较多,但是因为素材难找的原因,在这里找到了一篇总结了免费素材的文章

https://cn.eagle.cool/blog/post/free-game-assets

本次使用了kenney网站的2d素材,画风本人还是非常喜欢的

https://kenney.nl/assets

img

unity项目学习

https://www.bilibili.com/video/BV1Jp4y1b7sk/?spm_id_from=333.788.recommend_more_video.1&vd_source=468da91e3b8b0a7be2c0e9738ab7ff3b

根据b站的视频学习的,根据步骤大致分为下面的目录

放置素材-设计标签-编写脚本-导出

较为复杂的可能就是编写脚本这一步了,具体的方法没有源码就跟着视频里的逻辑去写就好了

素材放置

先来了解一下我们进入页面后的一些窗口

img

左上角是画面中的元素单位,后期我们单独设计某个元素时要在这里选择对应对象,

再向左是场景窗口,这里我们在这个界面设计关卡 角色.

右边的游戏画面,就是最终游戏会展示出来的效果

下面这个一栏就是我们的素材文件,我们的动画,贴图 音效都在这里


第一步设计摄像机尺寸,在游戏窗口的display旁边 选择固定的尺寸,摄像机的视角大小就不会变了

第二步放置方块素材

拖拽放置,选择检查器-绘制模式平铺 我们就可以大量绘图了img

实现这样的画面

img

放置人物和上面步骤类似,放好之后在对象栏中修改相应名称为Player

img

设计标签

这一部分主要是在unity中 为地形,角色和敌人设计相应的碰撞体积,动作,需要我们进行细致的标签,为下一步的脚本做准备

选择地面对象,选择添加组件 Box Collider 2D 这样地面就可以站立了,其他墙体也一样img

选择人物 添加组件Box Collider 2D 和Rigidbody 2D 把后者的冻结旋转勾选上,就不会人物模型侧翻,(具体的体积手动修改就行)

img

生成动画在根目录创建相应的文件夹,然后新建动画器控制器文件 就会看到如下的状态,我们去寻找相应的人物动作图片,放置到右下角的时间轴中,比如run的动画,我们拖动两个图片,就可以实现效果

img

效果如下。

img

接着我们来设计动作的逻辑,在参数一栏新建对应动作的参数,如何理解这一性质,就比如奔跑跳跃的特性,他们在一定条件下,会由不触发变成触发,这就是典型的bool类型。而像死亡这种特性,一旦“触发”那就无法再改变他的值,Trigger类型就属于这种,一旦触发,就无法再改变的状态

img

在最初创建动作时,动作之间的线是没有的,我们右键entry的话会有创建过度的选项 就是连线,idel是我们的站立动作,最初始化的动作我们让他只要一进入游戏就执行。

run和jump的状态 他们和站立这三者之间是可以在一定的条件下相互实现动作转换的。构建了如题的三角关系。

完成上面这一步之后,就需要设计上面提到的条件了,如下图,在对应的conditions位置 我们选择了run - true,这里的意思就是,从 站立到run的条件是,当参数run值为true1时,就可以执行,具体实现脚本,要我们在代码中呈现。

img

结语

场景的基础布置工作我们就在这里完成了,下一篇我们实现c#代码,让人物动起来,做一些关卡逻辑,初步实现一下简单的unity游戏,最后一篇章我们介绍一下加密的思路,前两篇更注重于开发,和逆向的关系不大,但是希望可以从新的角度,去看待一类题目。

微信
Thank U 🐟

About this Post

This post is written by xianyuuuan, licensed under CC BY-NC 4.0.

#逆向#unity#出题