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