Как пустить raycast из камеры в персонажа? При попытке это сделать луч направляется только по 2ум осям. Использовал такой код

Рейтинг: 0Ответов: 1Опубликовано: 05.03.2023
using System.Collections;
using System.Collections.Generic;

using UnityEngine;

public class SharRay : MonoBehaviour
    
{
    private Transform player;
    
    void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player").transform;
    }

    
    void LateUpdate()
    {
        Ray ray = Camera.main.ScreenPointToRay(player.position);
        Debug.DrawRay(transform.position, player.position, Color.yellow);

    }
}

Ответы

▲ 0

transform.position это не ScreenPoint (точка на экране), а WorldPosition (позиция в сцене).

public class Foo : MonoBehaviour
{
    [SerializeField] private Transform _target;
    private Transform _camera;

    private void Start ()
    {
        _camera = Camera.main.transform;
    }

    private void Update ()
    {
        Ray ray = new Ray(_camera.position, _target.position - _camera.position);
        Debug.DrawRay(ray.origin, ray.direction, Color.cyan);
    }
}