如何在 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,所以把我的答案当作概念证明。
//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);