Lor*_*git 1 camera unity-game-engine perspective unityscript
所以我刚才有一个奇怪的问题.我写了一个小脚本,当攻击一个对象时会使它面向鼠标指针.但是,由于我从正交相机切换到透视相机,因此脚本已停止工作.我已经添加了一些调试,看起来ScreenToWorldPoint只是返回相同的值,无论鼠标在哪里.我怀疑这与鼠标是一个基本的2D实体有关,但我不知道如何解决这个问题.
任何帮助深表感谢!:)
void Update () {
Vector3 difference = camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
//Debug.Log(Camera.main.ScreenToWorldPoint(Input.mousePosition));
difference.Normalize();
difference.Set (difference.x, difference.y, 0);
transform.up = difference;
Run Code Online (Sandbox Code Playgroud)
Unity Answers说,我引用:
ScreenToWorldPoint接收Vector3参数,其中x和y是屏幕坐标,z是距摄像机的距离.由于Input.mousePosition.z始终为0,因此您获得的是相机位置.2D屏幕中的鼠标位置对应于穿过摄像机中心和鼠标指针的3D世界中的一条线,因此您必须以某种方式选择您感兴趣的此行中的哪一个点 - 这就是为什么您必须通过距离相机在z.如果您尝试这样的事情:
Run Code Online (Sandbox Code Playgroud)function Update() { var mousePos = Input.mousePosition; mousePos.z = 10; // select distance = 10 units from the camera Debug.Log(camera.ScreenToWorldPoint(mousePos)); }你将从相机获得10个单位的世界点.
请在发布问题前使用谷歌.在发布此处之前,您会找到一个很大的变化.
| 归档时间: |
|
| 查看次数: |
8022 次 |
| 最近记录: |