Каким образом сделать, так чтобы оружие моего персонажа дулом было повернуто в сторону моего пальца (тача) и следило за ним, когда вожу по экрану.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShootPoint : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
touchPosition.z = 0f;
// transform.localRotation = touchPosition;
transform.rotation = ????????????
}
}
}
В Unity у Transform есть метод Transform.LookAt - по названию видно, что он делает :) Поэкспериментируйте с ним. Скорее всего, если у вас 2d игра, вам придётся доворачивать сам объект по какой-то из осей, чтобы он смотрел в экран нужным ребром.
В двумерном случае угол, соответствующий направлению вектора от точки A (персонаж) до точки B (точка, соответствующая касанию):
Fi = Math.atan2(B.Y - A.Y, B.X - A.X)
Вот такой простенький код получился, если кому понадобится.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShootPoint : MonoBehaviour
{
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
LookAt();
}
void LookAt()
{
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
Vector2 direction = new Vector2(touchPosition.x - transform.position.x, touchPosition.y - transform.position.y);
transform.right = direction;
}
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости