Unity3d 为什么可以';我不能缩放我的二维正字法游戏吗?

Unity3d 为什么可以';我不能缩放我的二维正字法游戏吗?,unity3d,Unity3d,我看了几段视频并阅读了一些帖子,这些视频和帖子表明我应该能够通过更改主摄像头的尺寸参数(Unity 2D游戏,正交投影)在游戏期间缩放摄像头视图。这样做会放大和缩小场景视图,但我在“检查器”中的任何位置所做的任何更改都不会更改游戏视图 有人能提供建议吗?谢谢 正交大小定义了相机的观看体积,它将仅缩放由其渲染的元素。看起来您正试图在画布上缩放,但UI元素是在整个场景的顶部渲染的 要放大和缩小,您可以: 将画布渲染模式设置为世界空间,然后将其放置在相机前面 使用可以放大画布的脚本,请查看以下内容:

我看了几段视频并阅读了一些帖子,这些视频和帖子表明我应该能够通过更改主摄像头的尺寸参数(Unity 2D游戏,正交投影)在游戏期间缩放摄像头视图。这样做会放大和缩小场景视图,但我在“检查器”中的任何位置所做的任何更改都不会更改游戏视图

有人能提供建议吗?谢谢


正交大小定义了相机的观看体积,它将仅缩放由其渲染的元素。看起来您正试图在画布上缩放,但UI元素是在整个场景的顶部渲染的

要放大和缩小,您可以:

  • 将画布渲染模式设置为世界空间,然后将其放置在相机前面
  • 使用可以放大画布的脚本,请查看以下内容:

    公共类PinchZoom:单行为
    {
    公共画布;//画布
    public float zoomSpeed=0.5f;//画布比例因子的变化率
    无效更新()
    {
    //如果设备上有两次触摸。。。
    如果(Input.touchCount==2)
    {
    //储存两种接触。
    Touch touchZero=Input.GetTouch(0);
    Touch Touch one=Input.GetTouch(1);
    //在每个触摸的前一帧中找到位置。
    Vector2 touchZeroPrevPos=touchZero.position-touchZero.deltaPosition;
    Vector2 touchOnePrevPos=touchOne.position-touchOne.deltaPosition;
    //查找每个帧中触摸之间向量的大小(距离)。
    浮点prevTouchDeltaMag=(touchZeroPrevPos-touchOnePrevPos).magnity;
    float-touchDeltaMag=(touchZero.position-touchOne.position)。幅值;
    //找出每帧之间距离的差异。
    浮点增量差值=prevTouchDeltaMag-touchDeltaMag;
    //…根据触摸之间距离的变化更改画布大小。
    canvas.scaleFactor-=DeltaMagniteDiff*缩放速度;
    //确保画布大小永远不会低于0.1
    canvas.scaleFactor=Mathf.Max(canvas.scaleFactor,0.1f);
    }
    }
    }
    

  • 我希望这对你有帮助

    你的游戏是完全在画布上制作的吗?
    你的游戏是完全在画布上制作的吗?
    根据层次结构,似乎是这样。在这种情况下@RT2010,你必须调整
    canvascaler
    组件的设置,该组件连接到你的
    Canvas\u游戏和
    Canvas\u面板
    你们真是太棒了!我所要做的就是改变画布的渲染模式,我的收缩/缩放就像一个冠军。这给我提出了一个问题。这是我的第一个团结项目。我想我们把UI元素放在画布上,然后相机渲染出来显示——就像艺术家在画布上画画然后用相机拍照一样。(你不能凭空作画。)从这次讨论来看,似乎我的范式错了。有人能澄清一下吗(或者给我指一个可以澄清的地方)?非常感谢@LorenzoGoldoni请尽可能在此处包含解决方案,而不是仅参考外部页面。因此,如果外部页面决定关闭或删除内容,它在此处仍然可用;)@RT2010有几种不同的画布渲染模式。世界空间如您所述工作,但其他空间“连接”到相机,无论您的相机变焦、位置、旋转或视野如何,都会显示相同的内容。例如,在制作FPS游戏的覆盖图时,这非常有用。@RT2010正如Louis所说,每当您想要绘制非diegetic元素时,您都会使用屏幕空间覆盖画布,因此不在相机上下文中。这些UI元素可以自由地从游戏的虚构中完全移除。非diegetic UIs可以代表生命和弹药,或者像魔兽世界中的热棒一样。非Diegetic UI通常以二维表示。另一方面,Diegetic UI(世界空间)存在于游戏世界中,而不是叠加在游戏上,是游戏虚构的一部分。如果你想阅读更多内容,请看一看,你一定要查看Unity的渲染层@德胡戈:谢谢你指出这一点,我刚刚开始回馈社区!!