You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity C#中Cos/Sin函数绘制的圆旋转后变形问题求助

解决XZ平面生成圆变形的问题

嘿,我来帮你捋捋这个圆变形的问题~你把XY平面的圆改成XZ平面后出现变形,大概率不是生成代码的问题,而是相机视角/投影设置或者轴缩放一致性导致的,下面给你一步步分析和解决办法:

常见原因与对应解决方案

1. 透视相机的透视变形

如果你的场景用的是透视相机(Perspective),XZ平面的圆会因为透视原理出现“近大远小”的变形——尤其是相机离圆比较近、FOV(视场角)设置较大的时候,这种变形会更明显。

  • 解决办法:
    • 把相机调整到正对XZ平面的位置(比如相机放在Y轴正上方,看向原点),避免倾斜视角带来的额外拉伸;
    • 适当调小相机的FOV值,或者把相机拉远一些,降低透视变形的影响。

2. 正交相机的宽高比适配问题

如果用的是正交相机(Orthographic),变形通常是因为相机的宽高比和正交大小不匹配,导致X轴和Z轴的单位显示比例不一致。

  • 解决办法:
    • 检查相机的Orthographic Size,可以根据屏幕宽高比动态调整,保证X和Z方向的单位显示大小一致。比如在代码里加一行:
      Camera.main.orthographicSize = Screen.height / 2f / Camera.main.aspect;
      
    • 确保相机的Aspect Ratio设置为Match Width or Height,适配当前屏幕比例。

3. 父物体/相机的缩放异常

如果生成圆的父物体,或者相机自身的Transform.scale不是(1,1,1),尤其是X/Z轴缩放不一致的话,生成的圆会被拉伸变形。

  • 解决办法:
    • 检查生成圆的父物体Transform,把X和Z轴的缩放都设为1;
    • 确认相机的Transform缩放也是(1,1,1),没有被意外调整。

快速调试方法

你可以先在XZ平面生成一个正方形(比如四个顶点:(1,0,1)、(1,0,-1)、(-1,0,-1)、(-1,0,1)),如果显示出来是长方形,那说明问题出在相机或缩放设置上,和圆的生成逻辑无关,优先调整上面的设置就行。

内容的提问来源于stack exchange,提问作者RealAnyOne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:07:57