Unity 问题汇总

来源:互联网 发布:软件测试经理招聘 编辑:程序博客网 时间:2024/06/07 06:41

如何将屏幕坐标投射到3d空间中

transform.position = Camera.main.ScreenToWorldPoint (pot);//Input.mousePosition 可以得到当前触摸屏位置点

为什么设置鼠标跟随但是在运行的game下看不到

检查几个地方:

  • 运行时camera的深度
  • 运行时gameObject的深度
  • 如果两个深度相等, 再看camera的clipping planes的near值, 一般通过屏幕投影转换过来的坐标z值为camera的深度, 而near设置大于0, 则忽视这个深度的可视效果, 因此看不见
  • 屏幕投影最好在transform中固定好原有的深度
  • 另外near设置永远大于0.01, 这是因为如果按照Perspective投影方式, 近大远小, 摄影机捕捉到距离摄影机距离为0的对象的大小, 将缩放为无穷大, 这样逻辑是符合的, 但是显示性能和效果都是不采纳的, 所以near被强制大于0

为什么物体旋转了, 但是并没有呈现3d效果?

默认的unity2d工程中, camera的投影方式是Orthographic方式, 这样的好处是, 无论在任何z深度, 物体大小都是等大的, 因此不存在近大远小的问题, 而且旋转也不会发生物体的畸变
想要实现3d的效果畸变, 只要将camera投影设置为Perspective即可

动态生成的新物体, 总是有一个固定的奇怪的坐标 ?

Instantiate 的时候, 会将现有的保存好的物体原封不动的按照数值展示出来, 所以保存到Project中的gameObject最好将位置等信息初始化

0 0