C# 如何在不同的脚本中实现bool

C# 如何在不同的脚本中实现bool,c#,unity3d,boolean,C#,Unity3d,Boolean,我试着让它,所以当我拿起一个物体,在这个例子中是一把枪,它标记了一个枪口,唯一的问题是拿起枪和枪射击脚本是两个不同的脚本。所以目前我正试图让皮卡脚本影响拍摄脚本。我让它与皮卡脚本改变,但不能让皮卡脚本改变拍摄脚本,这里有问题的代码位,任何帮助将不胜感激。如果需要这两个脚本的完整代码,我很乐意效劳,我只是不想强迫人们立即对120行代码进行排序 public float damage = 10f; public float range = 100f; public float fireRate =

我试着让它,所以当我拿起一个物体,在这个例子中是一把枪,它标记了一个枪口,唯一的问题是拿起枪和枪射击脚本是两个不同的脚本。所以目前我正试图让皮卡脚本影响拍摄脚本。我让它与皮卡脚本改变,但不能让皮卡脚本改变拍摄脚本,这里有问题的代码位,任何帮助将不胜感激。如果需要这两个脚本的完整代码,我很乐意效劳,我只是不想强迫人们立即对120行代码进行排序

public float damage = 10f;
public float range = 100f;
public float fireRate = 15f;
public float Impact = 40f;


public Camera fpsCam;
public bool pickedUp = false;
public ParticleSystem muzzleFlash;
public GameObject impactEffect;

private float nextTimeToFire = 0f;
private PickupScript myScript;

// Start is called before the first frame update
void Start()
{
    if (gameObject.GetComponent<PickupScript>().pickedUp = true) ;
    setbool pickedUp = true;
}
公共浮子损坏=10f;
公共浮动范围=100f;
公共浮式消防车的火灾率=15f;
公众浮标影响=40f;
公共摄像机;
public bool pickedUp=false;
公众参与制度;
公共游戏对象冲击效应;
私家花车火灾=0f;
私有PickupScript myScript;
//在第一帧更新之前调用Start
void Start()
{
if(gameObject.GetComponent().pickedUp=true);
setbool pickedUp=true;
}

注意:您的if条件缺少一个“=”,这是一个比较,而不是一个注释

如果是打字错误,请进一步阅读:

如果我理解正确,您只需要知道可以相互引用这些脚本

似乎您已经知道了,因为您正在使用PickupScript作为变量,所以我将尝试刷新引用此类内容的方法,因此可能会有所帮助

脚本是类,比如
GameObject
也是类。因此,当您公开一个GameObject变量并从编辑器中指定相应的GameObject时,您正在建立一个引用

您也可以在游戏中查找要引用的脚本,例如通过标记名

在您的例子中,有两个类,
PickUpScript
GunShot

如果它们是同一游戏对象的一部分,您可以从编辑器中分配它们,如果不是,则使用。一旦在每个脚本中都有了引用,就可以双向分配值

public class PickupScript : MonoBehaviour
{
    public bool pickUpBool = false;
    public Shotgun shotgun = false;

}

public class Shotgun : MonoBehaviour
{
    public bool shotgunBool = false;
    public PickupScript pickupScript = false;

    private void Start()
    {
        if (gameObject.GetComponent<PickupScript>().pickUpBool == true)
        {
            shotgunBool = true;
        }
    }
}
公共类PickupScript:monobhavior
{
公共bool pickUpBool=false;
公共散弹枪散弹枪=假;
}
公共级猎枪:单一行为
{
公共bool shotgunBool=假;
公共PickupScript PickupScript=false;
私有void Start()
{
if(gameObject.GetComponent().pickubool==true)
{
shotgunBool=真;
}
}
}