引用另一个脚本我做错了什么?

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

我目前正在制作一款 Unity 恐怖游戏。我才刚刚开始,但我的项目中已经存在一些问题和错误。我从 Unity Asset 商店下载了一个 Flashlight 预制件。它已经有一个名为FlashlightToggle的脚本,但是脚本的问题是,即使我没有配备手电筒(我手里没有),我也可以打开和关闭手电筒。我试图通过我的 PickUpController 脚本启用-禁用 FlashlightToggle 脚本来解决这个问题,该脚本基本上是使我能够拾取对象(如手电筒)的脚本。但是,当我在引用脚本后尝试禁用或启用脚本时,我得到一个错误代码:

Assets\Object Scripts\PickUpControllerTorch.cs(38,13):错误 CS0120:非静态字段、方法或属性“Behaviour.enabled”需要对象引用

你能帮我解决问题,并解释一下,我做错了什么吗? 我知道,有很多其他脚本与此问题有关,但我找不到任何帮助,尽管我现在一直在搜索这个错误。感谢您的帮助!

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PickUpControllerTorch : MonoBehaviour
{
public FlashlightToggle Torch;
public Key Item;
public Rigidbody rb;
public BoxCollider coll;
public Transform player, KeyContainer, fpsCam;

public float pickUpRange;
public float pickUpTime;
public float dropForwardForce, dropUpwardForce;
public float turnSpeed = 50f;

public bool equipped;
public bool otherequipped;
public static bool slotFull;


private void Start()
{
    //Setup
    if (!equipped)
    {
        Item.enabled = false;
        rb.isKinematic = false;
        coll.isTrigger = false;
        FlashlightToggle.enabled = false;
    }
    if (equipped)
    {
        Item.enabled = true;
        rb.isKinematic = true;
        coll.isTrigger = true;
        slotFull = true;
        FlashlightToggle.enabled = true;
    }
}

这不是完整的代码,所以如果您需要,请告诉我,我会上传完整的代码。

c# unity3d object-reference
© www.soinside.com 2019 - 2024. All rights reserved.