簡體   English   中英

屬性 UnityEngine.RequireComponent 在此聲明類型上無效。 它僅對類聲明有效

[英]The attribute UnityEngine.RequireComponent is not valid on this declaration type. It is valid on class declarations only

我正在嘗試使用 Unity2D 編寫我的第一個游戲“Tappy Bird”。 當我嘗試運行該應用程序時,我在 Unity 中收到以下錯誤消息:

Assets/scripts/TapController.cs(6,6):錯誤 CS0592:屬性 UnityEngine.RequireComponent 在此聲明類型上無效。 它僅對類聲明有效

代碼:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class NewBehaviourScript : MonoBehaviour

{
    [RequireComponent(typeof(Rigidbody2D))]

    public float tapForce = 10;

    public float tiltSmooth = 5;
    public Vector3 startPos;
    Rigidbody2D rigidbody;
    Quaternion downRotation;
    Quaternion forwardRotation;

    void Start()
    {
        rigidbody = GetComponent<Rigidbody2D();
        downRotation = Quaternion.Euler(0, 0, -90);
        forwardRotation = Quaternion.Euler(0, 0, 35);
    }

    void update()
    {
        if (input.GetMouseButtonDown(0))
        {
            transform.rotation = forwardRotation;
            rigidbody.AddForce(vector2.up * tapForce, ForceMode2D.Force);
        }
        transform.rotation = Quaternion.Lerp(
            transform.rotation, downRotation, tiltSmooth * Time.deltaTime);
    }

    void onTriggerEnter2D(Collider2D col){
        if(col.gameObject.tag == "ScoreZone") {
            //register a Score event
            //play sound
        }
        if(col.gmeObject.tag == "DeadZone") {
            //register a dead event
            //play a sound
        }
    }
}

如果我理解你的代碼正確,你應該類聲明之前添加屬性:

[RequireComponent(typeof(Rigidbody2D))]
public class NewBehaviourScript : MonoBehaviour
{
...
}

添加所需組件作為依賴項的 RequireComponent 屬性需要在您的類之外設置。

https://docs.unity3d.com/ScriptReference/RequireComponent.html

https://docs.unity3d.com/ScriptReference/RequireComponent.html

首先,它應該在類名的前面;

其次,如果您已將腳本附加到游戲對象,則需要再次重新附加。

[RequireComponent(typeof(Rigidbody2D))]
public class NewBehaviourScript : MonoBehaviour
{
    //...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM