Unity C# 光线角度不改变

问题描述 投票:0回答:1

我正在尝试创建一款直升机灯光跟随目标的游戏。这是我尝试使用的代码:

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 度是故意写的,使光线朝下。

c# unity-game-engine
1个回答
0
投票

这里的问题是欧拉角。试试这个代码:

void Update()
    {
        Vector3 directionToTarget = target.position - transform.position;
        float angleToTarget = Vector3.Angle(Vector3.down, directionToTarget);

        if (angleToTarget < MaxAngle)
        {
            transform.LookAt(target.position);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.