我正在尝试创建一款直升机灯光跟随目标的游戏。这是我尝试使用的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class helicopterLight : MonoBehaviour
{
public Transform target;
public int MaxAngle = 30;
void Update()
{
if (transform.localRotation.x < 90 + MaxAngle && transform.localRotation.x > 90 - MaxAngle)
{
transform.LookAt(target.position);
}
}
}
90 度是故意写的,使光线朝下。
这里的问题是欧拉角。试试这个代码:
void Update()
{
Vector3 directionToTarget = target.position - transform.position;
float angleToTarget = Vector3.Angle(Vector3.down, directionToTarget);
if (angleToTarget < MaxAngle)
{
transform.LookAt(target.position);
}
}
}