所以我试图通过触摸一个立方体来改变另一个脚本中的变量.当前设置
每个都有自己的脚本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?
所以基本上用户能够填写一个数字,该数字被添加到列表中,一旦用户按下按钮,列表应该在不使用该.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,但不知道要输入什么。顺便说一句,这是一个小作业。
我在游戏中生成了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 =>"但是因为我是林奇的新手,我真的不知道问题出在哪里.
我的控制台日志中没有任何错误,无论是什么情况.
我对 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)
我希望这对你有意义。
~西蒙