Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Проблема с ScreenToWorldPoint. Unity 2d

Nikita Sekushin Ученик (124), на голосовании 1 год назад
0


Идея в том чтобы лук был закреплен на руке персонажа и вращался за курсором вокруг неподвижной точки в ладони. Но лук по итогу вращается вокруг какой-то точки под персонажем.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bow : MonoBehaviour
{
private Vector3 mousePosition;
private float moveSpeed = 0f;
public GameObject arrow;
public Transform shotPoint;

void Start()
{
}

void Update()
{
mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = Vector2.MoveTowards(transform.position, mousePosition, moveSpeed * Time.deltaTime);
Vector3 difference = mousePosition - transform.position;
difference.Normalize();
float rotationAngle = Mathf.Atan2(difference.y , difference.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0, 0, rotationAngle);
}}
Может проблема с камерами? Я использовал Cinemachine VirtualCamera закрепленную к игроку и CinemachineBrain на Main Camera к которой закреплена VC. Main Camera

VC Camera

Если есть другие способы реализовать механику то подскажите где почитать или как сделать. Если коряво описал то скажите что исправить для будущих вопросов и что сюда добавить это мой первый)

Upd: обьект к которому прикреплен скрипт находится не на позиции курсора. При координатах x =-0,7 и y =-3,5 на курсоре и как надо.
Голосование за лучший ответ
Похожие вопросы