All dies kann aus dem Skript erfolgen. Von diesem Video ansehen, das sind die Schritte zu folgen, um diesen Effekt zu replizieren:
.Image Erscheint (Bild Enable)
Machen Sie das Bild sehr groß es dann langsam nach unten skalieren.
.Wait für 0.3
Sekunden
.Text Erscheint (Enable Text)
Machen Sie den Text sehr groß dann langsam verringern. Sie können dies tun, indem Sie die Schriftart von einer großen Zahl in eine kleine Zahl ändern.
.Wait für 1
zweiten
.Blink Text 4
mal durch den Alphawert des Textes (Color.a
) und zu 0
1
Makeln. Alpha 0
ist unsichtbar und 1
ist sichtbar. Warten Sie nach jedem Umschalten auf 0.1
. Sie können dies in einer for
Schleife tun.
.Text Disappears (Deaktivieren Text)
.Wait für 0.3
zweiten
.Image Scales unten verschwindet dann die Größe des Bildes erhalten, dann teilen sie in 2. Skalieren Sie im Laufe der Zeit auf diesen Wert.
Ändern Sie während der Skalierung das Alpha des Bildes von 1 auf 0. Dadurch wird allmählich unsichtbar.
Jetzt deaktivieren Sie das Bild. Das ist es.
Ich habe einen Code für dieses gemacht und Sie können es ändern, um Partikel nach Schritt # 3 hinzuzufügen.Im Folgenden finden Sie, was es aussieht:
einen UI Text, indem Sie auf Gameobject Erstellen ->UI ->Text:
den Code verwenden
.
Erstellen Sie die UI Bild, die auf dem Bildschirm, indem Sie auf Gameobject angezeigt wird ->UI ->Bild.
Setzen Sie den Text unter das Bild.
Ändern Sie die Texteinstellungen so, dass sie den eingekreisten Texteigenschaften in Rot aus dem folgenden Bild entsprechen. Wenn Sie die Komponenten und Image
modifiziert haben, deaktivieren Sie sie, so dass sie vor dem Ausführen des Codes nicht sichtbar sind.
Hängen Sie das Skript an die Canvas
an und ziehen Sie den Text dann in den textToAnimate
-Slot im Skript. Ziehen Sie das Bild in den Slot imageToAnimate
im Skript.
Nachfolgend finden Sie ein vollständiger Code, dies zu tun:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Test : MonoBehaviour
{
public Text textToAnimate;
public Image imageToAnimate;
// Use this for initialization
void Start()
{
StartCoroutine(CODGhostEffect(textToAnimate, imageToAnimate));
}
private IEnumerator CODGhostEffect(Text text, Image image)
{
//Step 1 Enable Image
image.gameObject.SetActive(true);
Color defaultTextColor = text.color;
Color invisibleTextColor = text.color;
invisibleTextColor.a = 0; //Set Alpha to 0
//Image RectTransform
RectTransform imageRect = image.GetComponent<RectTransform>();
Vector2 defaultImageSize = Vector2.zero;
defaultImageSize = imageRect.sizeDelta;
//Make the size of the Image to be 5x bigger then scale it back to be original size over time
Vector2 scaledImageSize = defaultImageSize * 5;
imageRect.sizeDelta = scaledImageSize; //Set the image size to be 5x
float imageAppearTime = 0.3f;
float counter = 0;
while (counter < imageAppearTime)
{
counter += Time.deltaTime;
float time = counter/imageAppearTime;
//Scale the image back to the original Size size OverTime
imageRect.sizeDelta = Vector2.Lerp(scaledImageSize, defaultImageSize, time);
yield return null;
}
//Step 2 Wait for 0.3 Seconds
yield return new WaitForSeconds(0.3f);
//Step 3 Enable Text
text.gameObject.SetActive(true);
//Make the font size of the Text to be 4x bigger then scale it back to be original size over time
int defaultTextSize = text.fontSize;
int scaledTextSize = defaultTextSize * 4;
text.fontSize = scaledTextSize; //Set the text font size to be 4x
float textAppearTime = 0.2f;
counter = 0;
while (counter < imageAppearTime)
{
counter += Time.deltaTime;
float time = counter/textAppearTime;
//Scale the text font size back to the original Size OverTime
text.fontSize = (int)Mathf.Lerp(scaledTextSize, defaultTextSize, time);
yield return null;
}
//Step 4 Wait for 1 Seconds
yield return new WaitForSeconds(1.0f);
float textBlinkTime = 0.1f; //Time between blinking Text
WaitForSeconds waitTime = new WaitForSeconds(textBlinkTime);
//Step 5 Blink Text
/////////////////////////Flash Text/////////////////////////
for (int i = 0; i < 4; i++)
{
//Hide Text by setting alpha to 0
text.color = invisibleTextColor;
yield return waitTime; //Wait
//Show Text by setting alpha to defaultvalue
text.color = defaultTextColor;
yield return waitTime; //again
}
//Step 6 Disable Text
text.gameObject.SetActive(false);
//Reset text color to default color
text.color = defaultTextColor;
/////////////////////////SLOWLY MAKE Image DISAPPEAR/////////////////////////
Color defaultImageColor = image.color;
Color invisibleImageColor = image.color;
invisibleImageColor.a = 0; //Set Alpha to 0
Vector2 halfImageSize = Vector2.zero;
halfImageSize = defaultImageSize/2;
//Step 7 Wait for 3 Seconds
yield return new WaitForSeconds(0.3f);
//Step 8 Animate Image disappearance
float imageDisappearTime = 0.2f; //How long to hide the UI Image (0.2 seconds)
counter = 0;
while (counter < imageDisappearTime)
{
counter += Time.deltaTime;
float time = counter/imageDisappearTime;
//Scale to half size OverTime
imageRect.sizeDelta = Vector2.Lerp(defaultImageSize, halfImageSize, time);
//Fade OverTime
image.color = Color.Lerp(defaultImageColor, invisibleImageColor, time);
yield return null;
}
//Disable Image
image.gameObject.SetActive(false);
//Reset image size to default size
imageRect.sizeDelta = defaultImageSize;
//Reset image color to default color
image.color = defaultImageColor;
}
}
Haben Sie noch etwas versuchen? Haben Sie einen Code, der nicht funktioniert? – Programmer
@Programmierer Ich bin ein Anfänger, ich habe keine Ahnung, wie man das bewerkstelligt.Ich habe getan Spritzer Funken hinter Text dafür mit Particle-System, aber das ist nur eine Sache von dem, was ich will. –
Keine gute Entschuldigung. Zumindest sollten Sie erwähnen, wo Sie ein Problem haben. Als Anfänger hier gehts http://unity3d.com/learn/tutorials/topics/scripting – Programmer