在游戏视图中保持2D对象比例:不可靠的代码

时间:2019-02-19 23:07:01

标签: c# unity3d

我在游戏视图中在Z轴(带有光标)上移动精灵时,比例始终保持相同。 我的代码

float dist = ((Camera.main.transform.position - mySprite.transform.position).magnitude);
float startSize = Mathf.Abs(1 / Camera.main.transform.position.z);
Vector3 realScale = myDict[mySprite.name];
dim = new Vector3((dist * realScale.x), (dist * realScale.y), (dist * realScale.z)) * startSize;
mySprite.transform.localScale = dim;

(由于可以在场景编辑中更改对象的localScale,因此在将它们放入myDict字典中进入“游戏视图”之前,我先存储了它的值。) 当前,我不在Update中使用此代码,而是通过编辑器按钮调用它。 起初它似乎工作良好,但后来我意识到实际上并不准确。 我通过从背景剪切图像并将其转换为精灵进行了一些测试。 覆盖原始图像的精灵始终会稍大。 我可以将Scale的值乘以一个常数,但是在我看来这不是正确的方法。 你能指导我吗?

0 个答案:

没有答案