首页 > 解决方案 > 'Ray' 不包含带有 2 个参数的构造函数

问题描述

即使在文档中,此行也表示为 "Ray ray = new Ray(transform.position, transform.forward); ",但我收到错误消息。

using System.Collections.Generic;
using UnityEngine;

public class Ray : MonoBehaviour
{
    void Update()
    {
        Ray ray = new Ray(transform.position, transform.forward);
        Debug.DrawRay(transform.position, transform.forward, Color.yellow);
    }
}

标签: unity3d

解决方案


好吧,您也刚刚命名了自己的类Ray ,它是 aMonoBehaviour并且没有带参数的构造函数。

现在您必须使用显式命名空间,例如

void Update()
{
    var ray = new UnityEngine.Ray(transform.position, transform.forward);
    Debug.DrawRay(transform.position, transform.forward, Color.yellow);
}

通常,尽管您应该使用更好的类名,该类名在您的情况下更具描述性,例如RayVisualizer或类似的东西。


推荐阅读