Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 缩放到统一的特定高度_C#_Unity3d - Fatal编程技术网

C# 缩放到统一的特定高度

C# 缩放到统一的特定高度,c#,unity3d,C#,Unity3d,我有一个类似乒乓球的游戏,除了你控制两个球拍并试图将球保持在界内。对于所有分辨率,我希望挡板始终为屏幕高度的1/3。因此,如果高度=900,则桨应为300高。出于某种原因,我似乎找不到一种适用于任何地方所有决议的方法。我觉得我需要通过脚本来完成这一点。这是我的桨组件的图像 我需要一个通用公式,使挡板高度始终为屏幕高度的1/3 感谢您的帮助 获取画布高度,并将桨大小delta指定为y大小等于画布高度除以3 这是脚本,假设您将其连接到桨: public Canvas myCanvas; void

我有一个类似乒乓球的游戏,除了你控制两个球拍并试图将球保持在界内。对于所有分辨率,我希望挡板始终为屏幕高度的1/3。因此,如果高度=900,则桨应为300高。出于某种原因,我似乎找不到一种适用于任何地方所有决议的方法。我觉得我需要通过脚本来完成这一点。这是我的桨组件的图像

我需要一个通用公式,使挡板高度始终为屏幕高度的1/3


感谢您的帮助

获取画布高度,并将桨大小delta指定为y大小等于画布高度除以3

这是脚本,假设您将其连接到桨:

public Canvas myCanvas;

void Start() {
    float canvasHeight = myCanvas.pixelRect.height;
    GetComponent<RectTransform>().sizeDelta = new Vector2(GetComponent<RectTransform>().sizeDelta.x, canvasHeight/3f);
}
公共画布myCanvas;
void Start(){
浮动画布高度=myCanvas.pixelRect.height;
GetComponent().sizeDelta=新矢量2(GetComponent().sizeDelta.x,画布高度/3f);
}

你是说我应该把它放在画布上,然后改变RectTransformer的大小吗?我看到你有一个RectTransform组件连接到挡板上,所以我假设你把它放在画布上。如果是这样,则可以更改拨片的RectTransform组件的宽度。如果不使用画布,则可以使用脚本获取相机大小(假设相机覆盖所有屏幕)。这是针对SpriteEnderIt中的图像还是精灵的。修改矩形变换的宽度,这意味着只要连接了RectTransform组件,它就可以工作。我忘了提到Spriterenders仅在画布外工作,在这种情况下,您必须使用图像组件。