特定对象的Unity相机缩放(2D)
Unity camera zoom for specific object (2D)
我只想在 2D 中向前和向后缩放特定元素。
- 我有一个正交相机。
我有一个 canvas 包含 UI 不能改变大小的元素或
位置.
我在这个canvas中还有一些元素必须放大或者
出.
一张图片值1000字:http://prntscr.com/ljjp8i
我想放大背景(这是一张图片)和上面的圆圈,但不放大游戏视图周围的buttons/text。
我已经用下面的代码做了一些测试:
void Update()
{
if (Input.GetAxis("Mouse ScrollWheel") < 0) // back
{
Debug.Log("zoom out");
cam.orthographicSize +=1;
}
if (Input.GetAxis("Mouse ScrollWheel") > 0) // forward
{
Debug.Log("zoom in");
}
}
}
不幸的是,它没有做任何事情。即使 DEbug.Log 出现,视图也没有变化。
此外,我不知道它将如何对所有 UI 元素做出反应,如何排除不得 "zoomed".
的元素
有人能给我指出一个很好的资源来解释如何实现这一点,或者给我一些指导以便我可以自己探索吗? (如果你有能力,甚至可以给出解决方案^^)
谢谢。
默认情况下,canvas 设置为在 Screen Space
中呈现。
您应该考虑为要缩放的对象创建单独的 canvas。将那个canvas的渲染模式设置为World Space
,应该会受到相机正交尺寸的影响。
我只想在 2D 中向前和向后缩放特定元素。
- 我有一个正交相机。
我有一个 canvas 包含 UI 不能改变大小的元素或
位置.我在这个canvas中还有一些元素必须放大或者
出.
一张图片值1000字:http://prntscr.com/ljjp8i
我想放大背景(这是一张图片)和上面的圆圈,但不放大游戏视图周围的buttons/text。
我已经用下面的代码做了一些测试:
void Update()
{
if (Input.GetAxis("Mouse ScrollWheel") < 0) // back
{
Debug.Log("zoom out");
cam.orthographicSize +=1;
}
if (Input.GetAxis("Mouse ScrollWheel") > 0) // forward
{
Debug.Log("zoom in");
}
}
}
不幸的是,它没有做任何事情。即使 DEbug.Log 出现,视图也没有变化。 此外,我不知道它将如何对所有 UI 元素做出反应,如何排除不得 "zoomed".
的元素有人能给我指出一个很好的资源来解释如何实现这一点,或者给我一些指导以便我可以自己探索吗? (如果你有能力,甚至可以给出解决方案^^)
谢谢。
默认情况下,canvas 设置为在 Screen Space
中呈现。
您应该考虑为要缩放的对象创建单独的 canvas。将那个canvas的渲染模式设置为World Space
,应该会受到相机正交尺寸的影响。