Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 如何在unity中的多个游戏对象上使用相同的脚本?_Unity3d - Fatal编程技术网

Unity3d 如何在unity中的多个游戏对象上使用相同的脚本?

Unity3d 如何在unity中的多个游戏对象上使用相同的脚本?,unity3d,Unity3d,我有一个脚本CoinFill,它可以生成一个径向进度条 当FillAmount=1时,我想将特定图像重置为零。我希望能够将其用于多个GameObjects。问题是,当第一个填充量=1时,速度更快的硬币,你可以点击硬币,可能是50%填充,然后硬币将重置为0。然而,如果五分硬币是1,它不会自动复位,只有一分硬币会休息 我正在尝试做的事情的图像: 代码: 使用UnityEngine; 使用系统集合; 使用UnityEngine.UI; 公共类硬币:单一行为{ 公共储蓄账户经理山姆; 公共交通速度;

我有一个脚本
CoinFill
,它可以生成一个径向进度条

当FillAmount=1时,我想将特定图像重置为零。我希望能够将其用于多个
GameObject
s。问题是,当第一个
填充量
=1时,速度更快的硬币,你可以点击硬币,可能是50%填充,然后硬币将重置为0。然而,如果五分硬币是1,它不会自动复位,只有一分硬币会休息

我正在尝试做的事情的图像:

代码:

使用UnityEngine;
使用系统集合;
使用UnityEngine.UI;
公共类硬币:单一行为{
公共储蓄账户经理山姆;
公共交通速度;
公众形象;
公共浮点数maxCoinFill=100f;
公共浮点数minCoinFill=0f;
公众浮充;
//用于初始化
void Start()
{
currentCoinFill=minCoinFill;
}
无效更新()
{
if(currentCoinFill

我不确定我是否需要对便士或镍币的父母做些什么,或者我是否应该使用
这个
或者设置一些父母的东西假设你有三个不同的便士,a B和C

1) 因此,确实要在场景中创建三个便士。。也就是说,制作三个新的游戏对象,并添加图形或任何东西。确保在每个游戏对象上正确设置名称

2) 查看A.将脚本拖到A.

3) 查看脚本上的inspector变量槽实际上是A上的。

4) 将A从层次结构拖到

也就是说,完全可以将项目“拖到自身上”。换句话说,脚本中的变量将仅引用“该项本身,A”

5) 现在忘记A。只看B

6) 将脚本拖到B上。再次,将B“拖到自身”以填充插槽

7) 现在,将脚本拖到C上。再次,将C拖到“自身”上以填充插槽

在脚本顶部(处于唤醒状态)或任何添加此

Log(“此特定脚本位于“+gameObject.name”上)

跑。请注意,您会看到其中三个


现在您有三个独立的对象和独立的脚本!享受

Joe的回答很好,但想添加另一个选项来回答这个名义上的问题:因为您的类源自Monobehavior,所以您可以在运行时使用以下代码行将脚本添加到任何游戏对象

someobject.gameObject.AddComponent<CoinFill>();
someobject.gameObject.AddComponent();

谢谢乔,我最初以为我可以这样做,谢谢你的帮助!如果它只是一个字符串变量,会发生什么?没有德拉金希·里法特。我不知道你的意思。只需尝试
publicstringx
,看看会发生什么。您可以在编辑器中,在插槽中的Inspector中键入字符串。祝你好运
someobject.gameObject.AddComponent<CoinFill>();