小编Sim*_*mon的帖子

从另一个脚本访问变量/函数

所以我试图通过触摸一个立方体来改变另一个脚本中的变量.当前设置

  • 1x球员
  • 1x敌人

每个都有自己的脚本Enemy_Stats&Character_Stats
正如你在这个小片段中看到的那样,从另一个脚本访问变量是一个很好的解决方法.

void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.tag == "Enemy")
    {
        collision.gameObject.GetComponent<Enemy_Stats>().Health = 
            collision.gameObject.GetComponent<Enemy_Stats>().Health 
            - gameObject.GetComponent<Character_Stats>().AttackDamage;

        if (collision.gameObject.GetComponent<Enemy_Stats>().Health <= 0)
        {
            Destroy(collision.gameObject);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我刚接触Unity,但是没有办法用它来引用它:
collision.Health

c# unity-game-engine unityscript

3
推荐指数
1
解决办法
3451
查看次数

手动对列表进行排序

所以基本上用户能够填写一个数字,该数字被添加到列表中,一旦用户按下按钮,列表应该在不使用该.Sort();功能的情况下进行排序

    public int[] nummers;
    public ObservableCollection<int> alleNummers = new ObservableCollection<int>();
    public MainWindow()
    {
        InitializeComponent();
    }

    private void button_Click(object sender, RoutedEventArgs e)
    {
        alleNummers.Add(int.Parse(nummerBox.Text));
        listBox.ItemsSource = alleNummers;
    }

    private void sortBtn_Click(object sender, RoutedEventArgs e)
    {
        foreach (int i in alleNummers)
        {
            //Sort the int's from small to big
        }
        nummers = alleNummers.ToArray();
        listBox.ItemsSource = nummers;
    }
Run Code Online (Sandbox Code Playgroud)

我想,我需要使用循环foreach,但不知道要输入什么。顺便说一句,这是一个小作业。

c# arrays sorting list

0
推荐指数
1
解决办法
4873
查看次数

获取bool为false的数组中的第一项

我在游戏中生成了GameObjects,这些对象被保存在一个数组中.该数组按距离玩家的距离排序.

如果玩家已经获得了他的目标(其中一个对象),则该对象的布尔"已声明"需要设置为true,以便其他玩家无法再获得该对象.

相反,他们需要获取该数组的第一项,其中布尔"Claimed"为false.

public void SearchFood()
{
    AllFood = GameObject
        .FindGameObjectsWithTag("Food")
        .OrderBy(x => Vector3.Distance(this.transform.position, x.transform.position))
        .ToArray();

    ClosestPieceOfFood = AllFood
        .First(Claimed => ClosestPieceOfFood.GetComponent<Food>().Claimed == false);

    ClosestPieceOfFood.GetComponent<Food>().Claimed = true;
}
Run Code Online (Sandbox Code Playgroud)

该功能的第二个规则不起作用,我怀疑问题是在"Claimed =>"但是因为我是林奇的新手,我真的不知道问题出在哪里.

我的控制台日志中没有任何错误,无论是什么情况.

c# linq unity-game-engine

0
推荐指数
1
解决办法
150
查看次数

“=”和“===”之间的Javascript区别

我对 Javascript 完全陌生,我正在学习“ http://www.codecademy.com ”上的教程

在函数方面遇到了一些困难,所以当我有时间闲逛时,我不知道为什么我的脚本无法正常工作,直到我更改====,但为什么===有效而=不是?

var testTest = function(answer) {
    if (answer === "doggies") {
       return "My favorite animal!";
       } else {
       return "Tested";
    }
};
testTest("doggies")
Run Code Online (Sandbox Code Playgroud)

因此,当我输入doggies它时,它会显示给我,My favorite animal! 而当其他任何东西都Tested应该显示时。

但是当我有=这个else部分时,它就不起作用了。

var testTest = function(answer) {
    if (answer = "doggies") {
       return "My favorite animal!";
       } else {
       return "Tested";
    }
};
testTest("elephant")
Run Code Online (Sandbox Code Playgroud)

我希望这对你有意义。

~西蒙

javascript function

-23
推荐指数
1
解决办法
428
查看次数