【问题标题】:how to effect bool in different script如何在不同的脚本中影响 bool
【发布时间】:2020-08-02 20:24:58
【问题描述】:

我试图拥有它,所以当我拿起一个物体时,在这种情况下是一把枪,它标记了一个布尔值,唯一的问题是枪的拿起和枪击脚本是两个不同的脚本。所以目前我正在尝试让拾取脚本来影响拍摄脚本。我用拾取脚本更改了它,但无法让拾取脚本更改拍摄脚本,这是有问题的代码,任何帮助将不胜感激。如果需要这两个脚本的完整代码,我很乐意提供帮助,我只是不想强迫人们立即对 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;
}

【问题讨论】:

    标签: c# unity3d boolean


    【解决方案1】:

    注意:您的 if 条件缺少一个“=”,作为比较,而不是分配。

    如果这是拼写错误,请进一步阅读:

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

    似乎您已经知道,因为您使用 PickupScript 作为变量,所以我会尝试刷新引用此类内容的方法,所以也许它会有所帮助。

    脚本是类,就像GameObject 也是一个类。因此,当您公开一个 GameObject 变量并从 Editor 分配相应的 GameObject 时,您就是在建立一个引用。

    您也可以在游戏中找到要引用的脚本,例如通过 TAG 名称。

    在您的情况下,您有 2 个课程,PickUpScriptGunShot

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

    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;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多