将弹出式得分置于敌人的位置

时间:2018-07-03 12:58:35

标签: c# unity3d canvas text

我想在一个被消灭敌人的位置放置一个弹出式分数。我正在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);
}

这是带有弹出式得分的游戏玩法:

enter image description here

这些是画布的设置:

enter image description here

0 个答案:

没有答案