unity3d - Unity C#:从游戏对象(3D)到画布(屏幕空间 - 相机)的线渲染器
问题描述
我的场景中有一个 3D 对象,我想在 3D 对象和一个具有渲染模式 Screen Space -Camera 的画布之间绘制一条线(LineRenderer)。
Destination = GameObject.Find("MyCanvas").GetComponent<Canvas>().transform;
lineRenderer = gameObject.AddComponent<LineRenderer>();
lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
lineRenderer.SetColors(laserColor,laserColor);
lineRenderer.SetWidth(initW,finalW);
lineRenderer.SetVertexCount(2);
Origin= GameObject.Find("MyObj");
lineRenderer.SetPosition(0, Origin.position);
lineRenderer.SetPosition(1, Destination.position);
如果对象是两个 3D 对象,则此代码运行良好。在我的情况下,3D 对象和画布之间的线是错误的。这条线会从 3D 对象转到错误的坐标。这显然是一个坐标问题。如何从 Canvas 中获取正确的坐标?我必须做某种转换?谢谢您的帮助。
解决方案
推荐阅读
- python - 如何使用 OpenCV 和 python 指定图像中的轮廓?
- python - Kivy 小部件意外连接
- javascript - JavaScript,如何将对象连接到 LocalStorage 中的数组中?
- swift - 在不使用自定义布局的情况下左对齐 UICollectionView 单元格
- flutter - Flutter 将字符串一分为二
- javascript - 如何根据存储的数据更改表格单元格的背景?
- python - 无法使用两次以“打开(文件名)”打开的同一文件
- python-3.x - 进程以退出代码 -1073740940 和 Numba 完成
- php - 格式化 array_sum 中的数组中的数字
- mysql - 连接到 MySQL 服务器计算机