我希望动画我的Score-GUI文本可以计算到变量值,但我的方式有两件事:
int
)并为其设置动画?对于#2,我在脚本中创建了一个属性。然而编辑不会在AddProperty对话框中显示它(如下所示):
public int currentScore = 0;
public int score {
get { return currentScore; }
set { this.currentScore += value; }
}
编辑:动画师以最基本的方式设置:
答案 0 :(得分:2)
因为你只有1个动画。 Animator与解决方案无关。这是经过测试和运作的。现在你需要使动画成为Legacy类型才能使它工作,因为我们不打算使用Animator。
单击项目上的动画 - >查看Inspector视图的右上角部分,那里有一个小按钮,可以下拉选择。 "调试和#34;然后检查遗产。
将动画设置为您想要的任何内容。我强制脚本中的WrapMode为包装模式一次。所以它只会播放一次。
现在在动画组件中,请确保您默认选择所需的动画,否则它将无效。因为我们只使用anim.Play();如果没有参数含义,请运行设置的默认动画。
我创建了一个文本用户界面,并添加了一个动画,从开始到终点,alpha为0,使它成为1.你必须自己做。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class MyScore : MonoBehaviour {
// Use this for initialization
public int currentScore = 0;
public GameObject Myscore; // Drag the GameObject that has the Animation for your score.
public Text myScoreText; //Drag in the Inspector the Text object to reference
public Animation anim;
public int score
{
get { return currentScore; }
set { this.currentScore += value; }
}
void Start()
{
anim = Myscore.GetComponent<Animation>(); // Reference the Animation Component.
anim.wrapMode = WrapMode.Once; // Legacy animation Set to play once
AddScore();
}
public void AddScore()
{
score += 10;
myScoreText.text = score.ToString();
anim.Play();
Debug.Log("Current Score is "+ score);
Invoke("AddScore", 2);
}
}
祝你好运。