其他脚本中的变量统一

时间:2019-03-08 15:26:24

标签: c# variables unity3d scripting

我正在尝试在Unity 2d中创建一个游戏。我已经完成了大部分想做的事情,并且已经转移到敌人身上。敌人(龙)来自屏幕的不同点。为此,我将精灵游戏对象放置在希望龙产生的地方。我已经将所有这些对象作为另一个对象DragonAncores的子对象。我在DragonAncores上附加了一个脚本,内容如下:

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

public class DragonTracker : MonoBehaviour {
    // is gold dragon in play?
    public bool GoldDragonInit = false;
    // curently active dragons
    public int DragonCount = 0;
    // defalts to 5
    public int Difficulty = 5;
}

然后,我将脚本附加到每个精灵上,最终将在来自其他变量的If逻辑逻辑偏向的Dragon Prefab(包含2个对撞器和一个动画师)中最终召唤。

下面是我正在使用的代码。

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

public class Dragons : MonoBehaviour {
    // same as GoldDragonInit
    bool GoldDragonSpawn = false;
    // same number as DragonCount in DragonTrackeer
    int LiveDragons;
    // same as Difficulty
    int DifLev;
    //get cariables from other script
    DragonAncors.cs.GetComponent.<DragonTracker>() GoldDragonInit = GoldDragonSpawn;

    System.Random RNG= new System.Random();
    void update()
    {
        RSpawn=RNG.Next(0,2)
        DragonType=RNG.Next(0,101)
        if (RSpawn = 1) ;
        {
            if (LiveDragons > DifLev) ;
            {
                if (DragonType > 99) ;
                {
                    // summon regular dragon
                }
                if (DragonType = 100) ;
                {
                    if (GoldDragonSpawn = true) ;
                    {
                        // summon gold dragon
                    }
                }
            }
        }
    }
}

这将抛出此错误列表。 Error List

这显示了我的等级结构和锚点(Squaair十字准线看上去的东西) Unity Hierarchy and anchor points

我一直在寻找其他解决该主题的线程,他们都尝试了不同的方法,这些方法都行不通。 我正在使用Unity 2018.2.18f1

非常感谢

3 个答案:

答案 0 :(得分:1)

这是无效的C#代码:

//get cariables from other script
DragonAncors.cs.GetComponent.<DragonTracker>() GoldDragonInit = GoldDragonSpawn;

为什么?因为它不在方法内部。

此外,该评论是错误的。它不是获取变量(也有输入错误),它不是 setting 在另一个脚本中的变量!

Visual Studio抱怨的第一个... 16个问题的原因是由于此行。

在此位置,您只能声明方法,字段和属性,并且您当前正在尝试访问另一个类并更改其成员之一(您只能在一个方法内执行此操作)。

另外,您认为.cs是因为“ DragonAnchors.cs是文件名!”您不需要这样做。我不确定如何改写此行(在Start()内部),因为我不确定您实际上要做什么。也就是说,我不知道DragonAnchors实例实际位于何处。您正在调用GetComponent(),该访问权限通常保留用于访问附加到游戏对象的组件,但是由于您尝试在静态类引用上进行操作,因此我不确定是否要在{ {1}}或其他东西。

答案 1 :(得分:1)

这是前往DragonTracker的方法:

/**
 * Get a validator for an incoming registration request.
 *
 * @param  array  $data
 * @return \Illuminate\Contracts\Validation\Validator
 */
protected function validator(array $data)
{
    return Validator::make($data, [
        'password' => ['required', 'string', 'min:3', 'confirmed'],
    ]);
}

答案 2 :(得分:0)

那里有很多错误,它们可能需要采取一些步骤来解决,但是首先,您首先应该使用不受支持的代码来解决问题。进入项目设置并更改编译器语言版本,因为它指出了第5个错误。这样应该可以使用较新的功能。