Unity2018新功能之2D Pixel Perfect 2D完美像素

2D Pixel Perfect介绍

2D Pixel Perfect(2D完美像素),包含一个Pixel Perfect Camera(完美像素相机),可以确保像素图片在不同的分辨率下都能保持清晰的像素效果。

2D Pixel Perfect的安装

点击菜单Window > Packages Manager > All,选择2D Pixel Perfect,然后点击Install按钮安装。

Sprite图片设置

我们导入一张像素图片,然后将Pixels Per Unit(单位像素)设置为32,这里根据图片的像素设置,比如我的图片是32*32的就是设置成32。Filter Mode(过滤模式)设置为Point没有过滤,不然图片的像素就会变模糊。Compression( 压缩)设置为None不压缩。注意,如果一张图片包含多个sprite元素,我们还需要将Sprite Mode设置为Multiple,进入到Sprite Editor,设置Pivot Unit Mode为Pixels。

Snap Settings快照设置

为了保证Sprite图片在移动的过程中保持一致性。

点击菜单Editor > Snap Settings,然后将XYZ的值改为1 / Pixels Per Unit,比如1/32 = 0.03125。最后点击Snap All Axes按钮。

Pixel Perfect Camera完美像素相机

Asset Pixels Per Unit(资源的单位像素):在场景里Sprite图片的单位像素,默认是100,比如我的Pixels Per Unit设置为32就填32。

Reference Resolution(参考分辨率):在编辑器里面表示虚线部分,放大这个分辨率可以在更高的分辨率下保持像素化。

Upscale Render Texture(高档渲染纹理):在参考分辨率内的图片将会使用这个功能。

Pixel Snapping(像素快照):渲染时将sprite渲染切换到世界空间中的网格中,网格大小基于Asset Pixels Per Unit,移动的时候将会以此为单位移动。启用高档渲染纹理时该设置将会失效。

Crop Frame(裁剪框架):根据参考分辨率的大小进行剪裁,剪裁后边框是黑色的(这又是什么鬼 - -')。

Run In Edit Mode(编辑运行模式):编辑器模式下可以运行。

我们为场景里的相机添加Pixel Perfect Camera组件,然后在场景里面添加几个sprtite,然后开启Upscale Render Texture高档渲染纹理功能,你就会发现这个功能的效果了——保持像素化。

下图为没有开启Upscale Render Texture高档渲染纹理功能:

 

下图为开启Upscale Render Texture高档渲染纹理功能:

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
首先,在Unity中创建一个空场景,并创建一个2D人物模型。然后,我们需要使用全的输入系统来实现移动功能。在Unity中打开“Package Manager”,找到“Input System”,并下载安装。 接下来,在“Project Settings”中启用的输入系统。选择“Player”,然后在“Other Settings”中将“Active Input Handling”设置为“Input System”。 接下来,我们需要为人物创建一个“CharacterController”组件。选择人物模型,在“Inspector”面板中添加该组件。然后,我们需要编写一个简单的脚本来控制人物的移动。 ```csharp using UnityEngine; using UnityEngine.InputSystem; public class PlayerMovement : MonoBehaviour { [SerializeField] private float speed = 5f; private Vector2 moveDir; private CharacterController controller; private void Start() { controller = GetComponent<CharacterController>(); } private void Update() { Vector3 move = new Vector3(moveDir.x, 0, moveDir.y); controller.Move(move * speed * Time.deltaTime); } public void OnMove(InputValue value) { moveDir = value.Get<Vector2>(); } } ``` 这个脚本通过监听输入系统的移动事件来控制人物的移动。我们将移动方向存储在一个向量变量中,并在Update()方法中使用CharacterController组件来移动人物。 最后,我们需要将这个脚本挂载到人物模型上,并将其绑定到输入系统的移动事件。选择人物模型,在“Inspector”面板中将该脚本拖到“Add Component”上。然后,在“Inspector”面板中选择“Add Component”下的“New Script”并命名为“PlayerMovement”。 在“Inspector”面板中找到“PlayerMovement”脚本,并展开“Input Actions”。将“Move”事件拖到“OnMove”方法上。 现在,我们可以运行场景并使用键盘或手柄来控制人物的移动了。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值