// Update is called once per frame void Update() { lifeTime -= Time.deltaTime; if (lifeTime <= 0) { this.gameObject.SetActive(false); BattleInfo battle = GameObject.FindWithTag("BattleInfo").GetComponent <BattleInfo>(); battle.CollectDamageText(this.transform); return; } if (floatTime > 0) { position.y += upSpeed * Time.deltaTime; position.x += horSpeed * Time.deltaTime; floatTime -= Time.deltaTime; } Vector2 screenPos = Camera.main.WorldToScreenPoint(position); RectTransform rec = this.transform as RectTransform; rec.position = screenPos; if (lifeTime < fadeTime) { float alpha = lifeTime / fadeTime; Text txt = GetComponent <Text>(); txt.color = new Color(txt.color.r, txt.color.g, txt.color.b, alpha); } if (transform.localScale.x < maxScale) { scaleTime += Time.deltaTime; float scaleRate = scaleTime / maxScaleTime * (maxScale - minScale) + minScale; if (scaleRate > maxScale || Mathf.Abs(scaleRate - maxScale) < 0.1) { scaleRate = maxScale; } transform.localScale = new Vector3(scaleRate, scaleRate, scaleRate); } }