@ParchedNebula

Как адаптировать движение пистолета в 2d игре к джойстику?

У меня есть 2d игра, где имеется пистолет, который следит за мышкой. Недавно я сделал джойстик, как для телефона, чтобы можно было управлять и персонажем и вращением пистолета. Персонажа я смог адаптировать под джойстик, чтобы он ходил и т.п., но вот пистолет никак не смог. Вот пример кода пистолета, который должен смотреть в те же стороны, куда я иду(вращаю джойстик)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class pistol : MonoBehaviour
{
    public float offset;
    public GameObject ammo;
    public Transform shotDir;
    public Joystick Joystick;

    public float timeShot;
    public float startTime;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
        float rotateZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(0f, 0f, rotateZ + offset);

        if (timeShot <= 0)
        {
            if (Input.GetMouseButtonDown(0))
            {
                Instantiate(ammo, shotDir.position, transform.rotation);
                timeShot = startTime;
            }
        }
        else
        {
            timeShot -= Time.deltaTime;
        }
    }
}


В этой строке:
Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
float rotateZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, rotateZ + offset);
Указано, что он должен следить за мышкой, но как сделать так, чтобы он следил за джойстиком?
(В пример могу привести игру soul knight для телефона, где при ходьбе, джойстик смотрел в ту же сторону, что и персонаж)
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега Unity Game Engine
Кто хочет -ищет способ, кто не хочет -ищет причину
Можете сделать типа "виртуальную" мышку, что висит в метре-двух от персонажа и управляется джойстиком, и прицел будет за ней следить так же, как за реальной.

Еще обратите внимание на метод Transform.LookAt, чтобы вручную углы не считать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы