【问题标题】:Unity clamping issues统一夹紧问题
【发布时间】:2016-05-11 07:02:10
【问题描述】:

我试图只让我的乒乓球游戏中的乒乓球拍到屏幕顶部和底部然后停止。我想我会将 yClamp 变量设置为相机尺寸 - 纹理的高度除以 2。但是这根本不起作用。顶部应该大约在 3.2 到 3 之间,我正在使用的宽高比。这是我尝试使用的代码:

    renderer = GetComponent<SpriteRenderer>();

    yClamp = Mathf.Abs(Camera.main.orthographicSize - 
        ((renderer.sprite.textureRect.height / renderer.sprite.pixelsPerUnit)/2f));

但是,这只允许我转到 1.43 和 -1.43。我似乎无法弄清楚为什么这不起作用。所有的逻辑都在那里。桨从 (0,0) 开始,所以我看不出我的逻辑哪里错了。

非常感谢您提供任何帮助!

注意:为了清楚起见,钳位应该大致介于 -3.2 和 3.2 之间。但是,我需要一个公式来解决这个问题,因为我将处理许多分辨率。这是我的调试状态。

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我不明白为什么它不起作用。

    这是我要检查的内容

    • 假设您被放置在 y = 0 坐标中。对吗?
    • 相机 orthoSize 是视图大小的一半(但我认为您使用正确)
    • renderer.sprite.textureRect.height 是否提供正确的像素结果?
    • 如果您改用 Sprite.bounds 会怎样?

    您只有几个变量,不难确定哪个变量不包含预期值。如果这不起作用,您能否发布每个变量的值(高度、相机尺寸、每单位像素)

    【讨论】:

      猜你喜欢
      • 2020-08-01
      • 2023-03-23
      • 1970-01-01
      • 2021-07-12
      • 2013-01-22
      • 1970-01-01
      • 2017-12-31
      • 2015-09-20
      • 2021-10-24
      相关资源
      最近更新 更多