我想在一个被消灭敌人的位置放置一个弹出式分数。我正在Unity3D中开发2D游戏。
到目前为止,popup-score已呈现在画布内部,但位置似乎有偏移。如何将弹出式分数准确地放置在被摧毁敌人的位置?
这是使分数变淡的c#类:
public class FloatAndFade : MonoBehaviour {
Text text;
public float fadeDuration = 2.0f;
public float speed = 2.0f;
void Start () {
text = this.GetComponent<Text>();
StartCoroutine(Fade());
}
public IEnumerator Fade () {
float fadeSpeed = (float)1.0 / fadeDuration;
Color c = text.color;
for (float t = 0.0f; t < 1.0f; t += Time.deltaTime * fadeSpeed) {
c.a = Mathf.Lerp(1, 0, t);
text.color = c;
yield return true; }
Destroy (this.gameObject);
}
void Update() {
this.transform.Translate(Vector3.up * Time.deltaTime * speed);
}
}
这是FloatScore方法,用于将popup-score放在画布中:
void FloatScore () {
GameObject popupScore = (GameObject)Instantiate (floatScore);
popupScore.transform.position = Camera.main.WorldToScreenPoint(this.transform.position);
popupScore.transform.SetParent (canvas.transform, false);
}
这是带有弹出式得分的游戏玩法:
这些是画布的设置: