如何在 Unity 中的两个移动对象之间进行光线投射

本文关键字:对象 移动 两个 之间 光线投射 Unity | 更新日期: 2023-09-27 18:34:46

如何在两个移动物体之间进行光线投射?

我想从移动的敌人投射到移动的玩家。 我不知道如何实际编码以使方向起作用。

using UnityEngine;
using System.Collections;
public class Enemy_Manage_Two : MonoBehaviour {
    public GameObject player;
    // Use this for initialization
    void Start () { }
    // Update is called once per frame
    void Update () {
        player = GameObject.FindGameObjectWithTag ("Player");
        //Debug.Log (player.transform.position + " " + transform.position);
        Ray ray = new Ray (transform.position, player.transform.position);
        RaycastHit hit;
        Debug.DrawRay (transform.position, player.transform.position,
            Color.red);
        if(Physics.Raycast(ray, out hit)) {
            gameObject.renderer.material.color = Color.blue;
        } else {
            gameObject.renderer.material.color = Color.white;
        }
    }
}

如何在 Unity 中的两个移动对象之间进行光线投射

目前我还没有 Unity,所以把我的答案当作概念证明。

//1. You have to calculate vector between enemy and player:
Vector3 direction=player.transform.position - transform.position;
direction.Normalize(); //Normalize vector
//2. Now you can create Ray
Ray ray=new Ray(transform.position,direction);