首页 > 解决方案 > 用像素设置精灵的大小

问题描述

我对 C# 比较陌生,但我了解大多数基础知识。我知道这个问题已经被问过很多次了,经过将近 2 个小时的搜索,我似乎仍然找不到有效的答案,所以请多多包涵。

我正在为 iOS 创建一个 2D Unity 游戏,我需要能够获取屏幕的大小,(我知道如何做到这一点,它是 Screen.width / Screen.height),然后设置大小一个精灵。我试图在屏幕上显示 7 个精灵(宽度方向),但我需要它来调整设备。硬编码数字不会在这里做。因此,为了实现这一点,我需要一种按像素缩放的方法,我不知道该怎么做,或者是否可以使用 Unity。如果有其他方法,请告诉我。

(是的,我尝试过使用 Rect 和 RectTransform,它要么不能满足我的需要,要么我用错了。可能是。)

标签: c#unity3dsprite

解决方案


我想通了,我必须使用确定屏幕宽度的数学函数的组合,我必须从那里完善一些数字。

以下是有效方法的一般概念:

//Declaration Of Variables
float blockSize = Screen.width / 8.75f;
float blockDistanceX = Screen.width / 8.75f;
void Start()
{
    //Extra variables that couldn't be declared earlier
    float xValue = blockDistanceX * -1f * 3.8f;
    float layerPos = -1500;

    //Creates new Block
    GameObject block = Instantiate(objectPrefab, new Vector3(0, 0, 1), Quaternion.identity, parent: canvas);
    block.transform.localScale = new Vector2(blockSize, blockSize);
    block.transform.localPosition = new Vector2(xValue, layerPos);
}

推荐阅读