Как это исправить? (Простой скрипт "Вращение") - PullRequest
0 голосов
/ 24 января 2019

Итак, у меня есть этот скрипт, который вращает точку вокруг моего «персонажа», он работал до тех пор, пока я не добавил миникарту с помощью элемента canvas ui, теперь он работает только в нижней левой части экрана. Здесь вы можете более четко увидеть, о чем я говорю.

это мой сценарий:

using UnityEngine;

public class PlayerAim : MonoBehaviour
{
    private void LateUpdate()
    {
        AimMouse();
    }
    void AimMouse()
    {
        Vector3 mousePos = Input.mousePosition;
        mousePos = Camera.main.ScreenToWorldPoint(mousePos);
        Vector2 direction = new Vector2(
            mousePos.x - transform.position.x,
            mousePos.y - transform.position.y
            );
        transform.up = direction;
    }
}

1 Ответ

0 голосов
/ 24 января 2019

Я бы поспорил, что ваша миникарта использует вторую камеру, верно? Обе камеры имеют тег MainCamera? Если это так, то ваш код, который вызывает Camera.main, будет иметь неопределенное поведение относительно того, какую камеру он на самом деле использует. Скорее всего, он использует камеру миникарты для вызова ScreenToWorldPoint, что дает вам неожиданное поведение.

То, что вам нужно сделать, это либо (а) удалить тег MainCamera из объекта камеры на мини-карте, либо (б) добавить ссылку на камеру в ваш скрипт и ссылаться на нее непосредственно в коде.

...