gpt4 book ai didi

c# - 将 GetComponent<>() 与变量一起使用?

转载 作者:行者123 更新时间:2023-11-30 20:48:20 24 4
gpt4 key购买 nike

我正在尝试创建一个定位系统。

当我点击一个骷髅敌人时,我希望能够从骷髅脚本中获取生命值和伤害,同样,当我点击另一个敌人时,我希望获得他们特定的生命值和损坏。

我能想到的唯一方法是使用 GetComponent 方法,但是有没有一种方法可以使用通用的 GetComponent,它根据敌人的不同使用变量我有目标,所以我可以根据该变量获取选定敌人的数据?

最佳答案

您没有显示任何示例代码,因此很难看出您有什么和没有解决,但这是解决问题的一种方法。

//Pseudocode 
GameObject enemy = GetEnemy(); //This could be a raycast, collision or some other method.
Health enemyHealth = enemy.GetComponent<Health>();

其实很简单。另一种方法可能是发送消息,并在适当时让敌人处理它。 From the docs :

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
void ApplyDamage(float damage) {
print(damage);
}
void Example() {
gameObject.SendMessage("ApplyDamage", 5.0F);
}
}

从它的声音来看,您遇到的问题不是获取其他组件,而是您将一堆不相关的功能混合在一起。敌人gameobject一般来说*应该与主要玩家具有相同的health componentEnemyPlayer 以及 Destructible Box 组件中不应该有健康码,否则你不仅要多次编写相同的代码,你很难与同一事物的不同实现进行交互。

* 在高级情况下,可能需要多个健康脚本实现而不是一个巨大的类。在这些情况下,某种抽象是有用的——例如接口(interface)、继承或消息传递。

关于c# - 将 GetComponent<>() 与变量一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24748759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com