学习Unity3D有一段时间了,突然想起来该把自己学习的写出博客,方便以后复习。
那就从今天开始吧
今天遇到一个问题,在用Unity3D做2D游戏的动画播放器的时候(没有用第三方的插件)发现一个问题。
Unity3D的中1个单位是一米,但我却不知道是多少像素
举个例子,我有一张 400*300的 Texture,我新建了一个分辨率为800*600的工程
并且在工程中创建了一个Plane用来保存Texture
理论上来说,这个图像显示在屏幕上,应该是占用屏幕1/4的位置,长宽都为屏幕的一半才对
但实际上,显示的大小与你的Plane的Tranform.Scale设置有关(默认为1,1,1)
如果设置Scale,让它达到我们想要的效果。400的像素,我该设置Scale的值为多少?
经过网上查找,解决办法如下
设置Camera的Projection为Otrhgraphic
并且设置Size为屏幕的一半(这里为300)
接下来就简单了。
把Plane的各个方向缩放图片大小的十分之一就可以了
这个例子中,图片大小为400*300,那么设置为Scale(40, 1, 40)
好了,问题解决了,虽然不是很完美,但做2D游戏,暂时可以了
附上2D动画播放器的代码(代码啰嗦了一点)
动画播放器的代码如下

这篇博客记录了作者在使用Unity3D制作2D游戏时,如何让Unity3D的单位与2D像素对应的问题。通过设置Camera的Projection为Orthographic并调整Size,以及调整Plane的Transform.Scale,实现了像素级别的对应。作者提到,对于400*300的Texture,在800*600分辨率的场景中,将Scale设置为40, 1, 40可以达到预期效果。此外,还分享了2D动画播放器的简化代码。"
93635237,1493609,使用ServerGuide U盘安装Windows Server 2012 R2详细步骤,"['服务器安装', '系统部署', 'Windows Server', '联想服务器', 'RAID配置']
让Unity3D中的单位与2D像素对应&spm=1001.2101.3001.5002&articleId=9148151&d=1&t=3&u=0a7f3c746dbd449486074c8efd529306)

被折叠的 条评论
为什么被折叠?



