c# - 用像素设置精灵的大小
问题描述
我对 C# 比较陌生,但我了解大多数基础知识。我知道这个问题已经被问过很多次了,经过将近 2 个小时的搜索,我似乎仍然找不到有效的答案,所以请多多包涵。
我正在为 iOS 创建一个 2D Unity 游戏,我需要能够获取屏幕的大小,(我知道如何做到这一点,它是 Screen.width / Screen.height),然后设置大小一个精灵。我试图在屏幕上显示 7 个精灵(宽度方向),但我需要它来调整设备。硬编码数字不会在这里做。因此,为了实现这一点,我需要一种按像素缩放的方法,我不知道该怎么做,或者是否可以使用 Unity。如果有其他方法,请告诉我。
(是的,我尝试过使用 Rect 和 RectTransform,它要么不能满足我的需要,要么我用错了。可能是。)
解决方案
我想通了,我必须使用确定屏幕宽度的数学函数的组合,我必须从那里完善一些数字。
以下是有效方法的一般概念:
//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);
}
推荐阅读
- angular - Angular 4 Material 表突出显示一行并更改选定的行颜色
- python - pyspark 中的计数器以检查具有重复项的数组中的数组
- java - 如何根据指定条件从数据库列表中检索项目
- python-3.x - 如何解决“模块‘pandas’没有属性‘scatter_matrix’”错误?
- css - 为什么 CSS 在 `npm run dev` 和 `npm run build` 之间呈现不同?
- c# - C# WPF 中的占位符文本框 - 无法绑定 DepedencyProperty
- android - 使用自定义仪器未找到仪器测试 - 条件仪器?
- swift - Swift:如何避免在所有继承类中重写这个 init()?
- jenkins - 无法通过 Jenkins 将笑话测试用例报告发布到 SonarQube 6.1 和 SonarScanner 3.3
- r - 将矩阵从 288*2 转换为 48*6