我有一个脚本CoinFill
,它创建了一个径向进度条。
当FillAmount = 1时,我想将该特定图像重置为零。我希望能够将它用于多个GameObject
。问题是,当第一个FillAmount
= 1时,速度更快的便士,你可以点击镍,可能是50%填充,然后便士将重置为0.但是如果镍是在1它不会重置自己,只有便士会休息。
代码:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class CoinFill : MonoBehaviour {
public SavingsAccountManager sam;
public float fillCoinSpeed;
public Image coinFill;
public float maxCoinFill = 100f;
public float minCoinFill = 0f;
public float currentCoinFill;
// Use this for initialization
void Start()
{
currentCoinFill = minCoinFill;
}
void Update()
{
if (currentCoinFill < maxCoinFill)
{
currentCoinFill += fillCoinSpeed * Time.deltaTime;
}
coinFill.fillAmount = currentCoinFill / maxCoinFill;
}
//Penny Button
public void PennyPush()
{
if (coinFill.fillAmount == 1)
{
sam.savingsAccountAmount += .01f;
sam.savingsAccountText.text = sam.savingsAccountAmount.ToString("f2");
currentCoinFill = minCoinFill;
}
}
//Nickle Button
public void NicklePush()
{
if (coinFill.fillAmount == 1)
{
sam.savingsAccountAmount += .05f;
sam.savingsAccountText.text = sam.savingsAccountAmount.ToString("f2");
currentCoinFill = minCoinFill;
}
}
}
我不确定我是否需要与Penny或Nickle的父母做某事,或者我是否应该使用this
或设置一些父母的东西
答案 0 :(得分:2)
假设你有三种不同的便士,A B和C
1)所以确实在场景中创建了三个便士..即,使三个新的游戏对象并添加图形或其他。一定要在每个游戏对象上正确设置名称
2)查看A. 将脚本拖到A上。
3)查看SCRIPT上的检查员变量槽实际上是A.
4)将A从层次结构拖到A上的那个检查器变量槽,A
即完全可以将项目&#34;拖到自身&#34; 。换句话说,脚本中的变量将简单地引用&#34;该项本身,A&#34;
5)现在忘了A. 只看B
6)再次将脚本拖到B.然后将B&#34;拖到自身&#34;填补空缺
7)现在C.再次将脚本拖到C.上,将C&#34;拖到自身&#34;填补空缺
位于脚本顶部(在Awake中)或添加此
Debug.Log(&#34;此特定脚本打开&#34; + gameObject.name);
运行。注意你看到其中的三个。
您现在有三个带有INDEPENDENT脚本的INDEPENDENT对象!享受
答案 1 :(得分:0)
Joe的答案很好,但想添加另一个选项来回答这个名词问题:由于你的类来自Monobehavior,你可以在运行时使用以下代码行将你的脚本添加到任何游戏对象。
M