Unity3d 如果多个游戏对象使用同一脚本,如何访问特定游戏对象上的变量?

Unity3d 如果多个游戏对象使用同一脚本,如何访问特定游戏对象上的变量?,unity3d,Unity3d,当进度条被填满时,我试图进行径向进度填充,这允许按下按钮,按下按钮后,它会执行一些操作并重置径向进度条。我想在不同的图像(径向进度条{Green Circle})和GamesObject(按钮)上多次使用此功能 由于以下原因,我目前有多个使用相同脚本的游戏对象: 硬币填充文字 public class CoinFill : MonoBehaviour { public Image coinFill; //This is a green circle public float fillCoi

当进度条被填满时,我试图进行径向进度填充,这允许按下按钮,按下按钮后,它会执行一些操作并重置径向进度条。我想在不同的图像(径向进度条{Green Circle})和GamesObject(按钮)上多次使用此功能

由于以下原因,我目前有多个使用相同脚本的游戏对象:

硬币填充文字

public class CoinFill : MonoBehaviour {

public Image coinFill;  //This is a green circle

public float fillCoinSpeed;
public float maxCoinFill = 100f;
public float minCoinFill = 0f;
public float currentCoinFill;
public float coinValue;


// Use this for initialization
void Start()
{
    currentCoinFill = minCoinFill;
}


void Update()
{
    if (currentCoinFill < maxCoinFill)
    {
        currentCoinFill += fillCoinSpeed * Time.deltaTime;
    }

    coinFill.fillAmount = currentCoinFill / maxCoinFill;
}
public class CoinPush : MonoBehaviour {
 //this is used on a button that looks like a coin and is suppose to reset the green circle Image

 public CoinFill cf;

 OnClick(){
        if (cf.coinFill.fillAmount == maxCoinFill)
        {
        cf.currentCoinFill = cf.minCoinFill;
        }
     }
 }
为了在CoinFill脚本上设置图像,我必须将其公开

为了使OnClick()成为公共的,所以我可以使用它,我制作了一个CoinClickManager空的游戏对象,但是这暴露了一个公共的CoinFill图像变量,这就是脚本崩溃的地方

这是一张我想画的硬币和绿色圆圈的图片

我的最终目标是,当通过脚本而不是检查器按下按钮时,也能够更改这个特定硬币和圆圈上的变量以及结果

以下是CoinFillManager:


这会让我把一个图像拖到这里,但它无法进入硬币上的绿色圆圈。

那么这里有什么问题?您只需将“CoinFill”组件拖到“CoinPush”组件的“Cf”字段中,这就是问题所在。我有多个硬币。每个新硬币都有自己的硬币填充您的“硬币推送”组件连接到什么对象?在上图中,它连接到作为UI按钮的镍币上。我也会有多个这样的。因此,我希望整个系统能够独立运行。在硬币上方我有一枚硬币(图中未显示),它们将有不同的计时器,并添加不同的金额。那么你是说它与“硬币填充”在同一个物体上?那么这里有什么问题?您只需将“CoinFill”组件拖到“CoinPush”组件的“Cf”字段中,这就是问题所在。我有多个硬币。每个新硬币都有自己的硬币填充您的“硬币推送”组件连接到什么对象?在上图中,它连接到作为UI按钮的镍币上。我也会有多个这样的。因此,我希望整个系统能够独立运行。在镍币上方我有一枚硬币(图中未显示),它们将有不同的计时器,并添加不同的金额。那么你是说它与“硬币填充”的位置在同一个物体上?