Jump to content
Unity Insider Forum

KaBau

Members
  • Content count

    43
  • Joined

  • Last visited

Community Reputation

0 Neutral

About KaBau

  • Rank
    Advanced Member

Profile Information

  • Gender
    Male
  • Location
    Hildesheim

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. KaBau

    Animation abspielen bei Objektzerstörung

    oder besser mit "Invoke". Dann siehst du zuerst noch den Asteroiden vor der Zerstörung: private void Start() { Invoke("IsDead", 2.0f); }
  2. KaBau

    Animation abspielen bei Objektzerstörung

    So, hier der Youtube Link zu Malzbies Tutorial: https://www.youtube.com/watch?v=2zZ7LuMWGP4&list=PLPBi1GFn_EArh5wT3_YaFi4_8KbvKHQej
  3. KaBau

    Animation abspielen bei Objektzerstörung

    Wenn du den Space Shooter aus dem Tutorial Video nimmst: die haben nicht eine Animation, sondern ein anderes GameObjekt gespawnt. Irgendwo hat Malzbie mal ein Tutorial zum Thema 2D Shooter gemacht. Er hatte glaube ich auch Animationen genutzt. Ich habe eben auf die Schnelle es nicht gefunden.
  4. KaBau

    Animation abspielen bei Objektzerstörung

    Hi, ich bin noch nicht so weit, dass ich Code wie ein Buch lesen kann, möchte aber versuchen zu helfen. Du versuchst auf die Anmation zuzugreifen, welche zum zerstörten Asteroiden gehört (unabhängig, ob diese im Inspector angeraut ist oder nicht). Im Video wird kurz vor der Zerstörung des Asteroiden jedoch ein anderes Game Objekt (die Explosion) in die Szene geladen, mit dem Befehl "Instantiate...". Ich mache es bei mir so wie im Video (stark verkürzster Code von meinem Skript): public class HealthAndDam : MonoBehaviour { public GameObject explosion; public Transform shotSpawn; void OnTriggerEnter(Collider other) { IsDead(); } void IsDead() { Instantiate(explosion, shotSpawn.position, shotSpawn.rotation); Destroy(gameObject); } } Zuerst lege ich als GameObjekt "explosion" die Explosion fest. Diese passiert im Inspector. Dieses ist ein komplet eigenes GameObjekt / Prefab. Danach lege ich mit "shotSpawn" den Startpunkt der Explosion fest. Auch im Inspector. Dieses ist nichts anderes als der Asteroid. Bei der Abfrage des Collider des Asteroiden löse ich "IsDead" aus. In "IsDead" wird zuerst die "explosion" an der "shotSpawn" Position und Drehung neu eingeladen. Danach wird dieses (also der Asteroird) GameObject zerstört. Die neu in die Szene geladene Explosion bleibt aber erhalten, da es ein anderes Game Objekt ist.
  5. KaBau

    Zuweisungsproblem

    Ok, dass war mir noch nicht so bewusst, dass es einen so großen Unterschied macht, wo die ++ stehen. Mir war auch noch nicht bewusst, dass ich hier gleich die rechte Variable abändere. Ich dachte immer, dass ich nur auf den Wert der rechten Variable zurückgreife. Danke.
  6. KaBau

    Zuweisungsproblem

    Sorry, aber ich verzweifle gerade an einer Grundlage: float instScaleMin; float instScaleMax; [Range(1, 4)] public int stageNumber; [Header("Stage 1")] public float instScaleMinS1; void Start() { if (stageNumber == 1) { instScaleMin = instScaleMinS1; instScaleMax = instScaleMinS1++; } } Im Inspector habe ich der Variable "instScaleMinS1" den Wert 0.8 gegeben. Im Inspector habe ich der Variable "stageNumber" den Wert 1 gegeben. Ich wollte: - die Variable "instScaleMin" mit der Variable "instScaleMinS1" gleichsetzten = 0.8 - die Variable "instScaleMax" um den Wert 1 gegenüber der Variable "instScaleMinS1" erhöhen = 1.8 Es passiert im Inspector (nachdem ich alle Variablen auf public gesetzt habe): - die Variable "instScaleMin" erhält den Wert 0.8 = genau so gewollt - die Variable "instScaleMax" erhält den Wert 0.8 = nicht gewollt - die Variable "instScaleMinS1" wurde gegenüber meiner manuellen Eingabe auf 1.8 geändert = verstehe ich nicht. Wo liegen meine Fehler? Edit: Alternativ hatte ich instScaleMax = instScaleMin++; probiert um die Variable "instScaleMax" nach dem gleichsetzten der Variable "instScaleMin" mit der Variable "instScaleMinS1" um dern Wert von 1 zu erhöhen. Nun passiert folgendes im Inspector: - die Variable "instScaleMin" erhält den Wert 1.8 - die Variable "instScaleMax" erhält den Wert 0.8 - die Variable "instScaleMinS1" bleibt auf der manuellen Eingabe von 0.8 geändert Grundsätzlich habe ich nun die beiden Werte 1.8 und 0.8 um diese beim Befehl "Random.Range" zu nutzen, aber nach meinen Verständniss werden diese Werte vertauscht ausgegeben.
  7. Hi, ich habe in meiner Scene Energie Items verteilt. Dieses sind Prefabs. Nun habe ich diese einzelnen Items in ein Empty Game Objekt verschoben und dieses wiederum als Prefab gespeichert. Nachdem ich das ursprüngliche Prefab der Energie Items verändert habe, haben sich diese Änderungen nicht auf die "Unter"Prefab übertragen. Kann ein solcher verschachtelter Prefab Aufbau nicht erstellt werden, oder habe ich etwas anderes falsch gemacht?
  8. Hallo, ich möchte im Partikel System ein Mesh spawnen, welches zum einen ein Material hat, und zum anderen verschiedene Farben haben soll. Hier würde ich gerne wie in den Haupteinstellungen unter "Start Color" zwei Farben angeben zwischen denen Unity interpoliert, sprich: das Material wird dementsprechend abgeändert. Geht das?
  9. KaBau

    Billboards

    Bei mir hatte es geholfen bei den Import Einstellungen der Textur den Wert des "Wrap Mode" auf "Clamp" zu stellen.
  10. KaBau

    Texturrand flimmert (gelöst)

    Nach vielen Probieren habe ich doch selber die Lösung gefunden: Bei den Import Setting der Textur habe ich unter "Wrap Mode" die Einstellung "Clamp" gewählt. Nun liegen meine einzelnen Flächen ohne Flimmern aneinander.
  11. Hi, ich möchte über die Saturnringe fliegen. Dafür habe ich mir eine großes Bild mit einer Höhe von 20480 Pixel erstellt. Nun wollte ich einzelne Quad erstellen und diese mit Teilabschnitten des großen Bild als Textur belegen (somit kann ich nach der Hälfe des Überflug einfach die Objekte spiegeln). Dabei kommt es am Rand der einzelnen Quad immer zu einem Flimmern. Ich denke mir dass liegt daran, dass die Textur hier nun endet und die letzte Pixelreihe manchmal gezeigt wird, und manchmal nicht. Je nach Lage des Objekt zur Camera. Im Bild ist die Schnittkante zwischen zwei Flächen etwas oberhalb des Schiffes zu erkennen. Was kann ich tun?
  12. KaBau

    OnMouseUp, OnDrag Alternative für Mobile

    Schau mal bei https://docs.unity3d.com/ScriptReference/Touch-phase.html nach.
  13. KaBau

    "ParticleSystem.loop" ist obsolet, was nun?

    Danke runner78. Klapp nun mit dust.GetComponent<ParticleSystem>(); var main = dust.main; main.loop = false; Schade nur, dass man nun mehr Code erstellen muss. Ich fand die frühere Codezeile einfacher. Wenn ich es richtig gesehen habe, gilt das nun für mehrere Befehle.
  14. KaBau

    PlayerScript Movement up down UNITY

    Ich bin gegenüber anderen Mitgliedern hier noch ein Anfänger, würde aber meinen, dass du noch keinen Input abfragst, um danach etwas zu bewegen. Anbei ein Script zum Bewegen meiner Camera (nur nach links und rechts): void Update () { if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved) { touchYes = true; cameraMoveHorizontal = Input.GetTouch(0).deltaPosition.x; } else { touchYes = false; } } private void FixedUpdate() { if (touchYes) { if (cameraMoveHorizontal > 0 && transform.position.x <= cameraXMax || cameraMoveHorizontal < 0 && transform.position.x >= cameraXMin) { Vector3 cameraMovement = new Vector3(cameraMoveHorizontal, 0.0f, 0.0f); transform.Translate(cameraMovement * cameraMoveSpeed * Time.deltaTime); } } } } Mit "Input.touchCount > 0" frage ich ab, ob eine Berührung des Bildschirm (also ein Tuoch) erfolgt. Danach Frage ich die Phase ab. Siehe dazu auch https://docs.unity3d.com/ScriptReference/Touch-phase.html Dann wandle ich die Toucheingabe in eine Variable um: "cameraMoveHorizontal = Input.GetTouch(0).deltaPosition.x;" um diesen Wert weiter unten in eine Bewegung umzusetzen. Ups, habe eben meine Variablen des Script vergessen. Hier sind sie: float cameraMoveHorizontal =0.0f; public float cameraMoveSpeed = 4.5f; int cameraXMin = -2; int cameraXMax = 2; bool touchYes = false; Geht sicher auch eleganter, soll dir aber ersteinmal einen Anstoß zum Denken geben.
  15. Hi, laut https://docs.unity3d.com/ScriptReference/ParticleSystem-loop.html ist "particleSystem.loop" veraltet und somit bald nicht mehr nutzbar. Ich wollte mit dust.GetComponent<ParticleSystem>().loop = false; das Looping ausschalten (was auch noch funktioniert). Wie kann ich es alternativ machen?
×