Das dürfte die Serie Shaolin Wuzang sein, das lief mal auf Kika. Auch die Beschreibung der ersten Folge auf der Wikia-Seite klingt sehr ähnlich.

...zur Antwort

Das ist ein bekanntes Problem, schau mal hier, die Person hatte das gleiche Problem. Es gibt verschiedene Lösungsansätze, die beispielsweise hier gelistet sind.

...zur Antwort

Schau dir mal Timelines an. Creating Timelines könnte auch hilfreich sein. Die erlauben es dir, eine Bewegung graphisch darzustellen.

...zur Antwort
Wie behebe ich in Unity den Fehler CS1061 ('Player' does not contain a definition for 'GetPosition' ...)?

Ich programmiere erst seit ein paar Wochen und habe mithilfe von YouTube und dem Internet mich durch Stunden des Codens und ähnlichem geboxt.

Doch nun, nachdem ich mein erstes wirkliches Projekt gestartet habe, stoppt mich nun der Fehler

CS1061:Assets/LevelGenerator.cs(28,45): error CS1061: 'Player' does not contain a definition for 'GetPosition' and no accessible extension method 'GetPosition' accepting a first argument of type 'Player' could be found (are you missing a using directive or an assembly reference?).

Es wäre superduper megamäßig cool, wenn sich jemand meganettes meinen Code ansehen könnte, um mir zu sagen was mein Fehler ist.

Dankeschön an jeden, der sich die Zeit nimmt, um mir zu helfen. Dankeschön. 😃

Hier nun mein Code (er soll eine unendliche Welt generieren):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LevelGenerator : MonoBehaviour {
  private const float PLAYER_DISTANCE_SPAWN_LEVEL_PART = 200f;

  [SerializeField]
  private Transform levelPart_1;

  [SerializeField]
  private Transform levelPart_Start;

  [SerializeField]
  private Player player;

  private Vector3 lastEndPosition;

  private void awake()
  {
    lastEndPosition = levelPart_Start.Find("EndPosition").position;
    int startingSpawnLevelParts = 5;

    for (int i = 0; i < startingSpawnLevelParts; i++)
    {
    }
  }

  private void Update()
  {
    if (Vector3.Distance(player.GetPosition(), lastEndPosition) < PLAYER_DISTANCE_SPAWN_LEVEL_PART)
    {
      // Spawn another level part
      SpawnLevelPart();
    }
  }

  private void SpawnLevelPart()
  {
    Transform lastLevelPartTransform = SpawnLevelPart(lastEndPosition);
    lastEndPosition = lastLevelPartTransform.Find("EndPosition").position;
  }

  private Transform SpawnLevelPart(Vector3 spawnPosition)
  {
    Transform levelPartTransform = Instantiate(levelPart_1, spawnPosition, Quaternion.identity);
    return levelPartTransform;
  }
}

PS.: Danke an jeden, der hilft oder sich das hier auch nur wenigstens durchliest. 😃

...zur Frage

Kannst du bitte deine Implementierung von "Player" posten? Die Fehlermeldung bedeutet, dass es diese Methode in der Klasse "Player" nicht gibt. Falls du die Klasse selber geschrieben hast, musst du eine solche Methode auch selber implementieren.

Alternativ, wenn "Player" von MonoBehaviour erbt, kannst du auch das hier machen, sofern es inhaltlich das Gleiche bedeutet:

player.gameObject.transform.position
...zur Antwort

Dafür gibt es in Unity Coroutines mit der Anweisung WaitForSeconds. Das solltest du aber nicht in einer Methode wie OnTriggerEnter2D machen, da diese Methode jedes mal gerufen wird, sobald das Objekt einen entsprechend anderen Collider berührt.

Schau stattdessen mal, wie man in Unity einen Game Over Screen programmiert. Mit "unity game over screen" findest du da in der Suchmaschine deiner Wahl viele gute Ergebnisse.

...zur Antwort

Objekte werden immer automatisch skaliert, egal ob du einen großen Bildschirm in 4K anschaust oder einen kleinen Bildschirm auf dem Smarphone, beide zeigen das gleiche Bild. Natürlich sieht eine 32 Pixel Textur auf einem Smartphone ganz anders aus als auf dem großen 4K Bildschirm.

Damit das auch mit 2D klappt, wähle immer relative und nicht absolute Werte. Sag deinem 2D Element beispielsweise nicht "25 Pixel von rechts", sondern "5% von rechts", damit deine Elemente auch bei unterschiedlichen Bildschirmgrößen gleich sind und sich nicht überlappen.

...zur Antwort

Viele gängigen Tricks aus der Industrie werden im Manual unter Optimizing graphics performance erwähnt. Schau dir insbesondere Level of Detail und Occlusion Culling an.

Nur so als warnende Worte, wenn du alleine an diesem Projekt arbeitest oder in einer kleinen Gruppe, man kann Wochen damit verbringen, an allen möglichen Schrauben zu drehen, um die Performance zu verbessern. Es ist häufig zielführender, sich erstmal mit dem Gameplay an sich zu beschäftigen und wenn das fertig ist, ans Optimieren der Performance zu gehen.

...zur Antwort

Schau dir mal SceneManager.LoadScene bzw SceneManager.LoadSceneAsync an. Bei der späteren Reference, mit dem Async, ist ein Beispiel dabei, wie man dann wartet, bis die Szene geladen ist.

Wenn du das außerhalb des Objekts wissen musst, welches die Szene lädt, beispielsweise in Form eines Events, das wird etwas komplizierter. Da empfehle ich einen Blick auf Architect for Events. Nicht frustriert sein, wenn du das nicht auf Anhieb verstehst, das sind mehrere Dinge, die man da auf einmal lernen und verstehen muss.

...zur Antwort

Solche Objekte macht man üblichweise als sogennante Foliage, welche ein sogenanntes Batching verwenden. Außerdem gibt es das sogenannte Instancing, siehe diese Diskussion: Static Mesh Instancing

Occlusion Culling ist auch sehr wichtig, da wird nur gerendert, was auch gesehen wird. Je nach Spiel wäre World Composition auch noch eine Idee.

...zur Antwort

Viele relevante Informationen, die deine Fragen beantworten, findest du hier: https://support.unity3d.com/hc/en-us/categories/201268913-Licenses

Insbesondere Can I make a commercial game with Unity Free/Personal Edition? dürfte für dich relevant sein.

You can absolutely sell commercial games made in the Personal Edition of Unity. 
To do this, you must meet the requirements to use Unity Personal Edition. This is that you did not earn or receive more than $100,000 in revenue or funding in the most recent 12 month period.
...zur Antwort

Mit Transform.forward (Unity Scripting API) bekommst du die "Vorwärts"-Richtung eines Objekts, indem die Rotation des Objekts berücksichtigt wird. Wenn du diesen Vektor umdrehst, dann hast du die Richtung, in die sich dein Charakter bewegen soll.

Damit das so funktioniert, wie du dir das vorstellst, muss aber der Charakter mit der Kameradrehung synchronisiert werden. Wo die Kamera hinschaut, da muss auch der Charakter hinschauen.

Alternativ, wenn du deinen Charakter nicht permanent in die Richtung drehen möchtest, in die die Kamera zeigt, kannst du den Transform.forward deiner Kamera nehmen, um den Spieler zu bewegen. Da musst du gegebenenfalls den Vektor anpassen, weil die Kamera vermutlich eine Rotation hat, aber es sollte reichen, um die Richtung zu bekommen, in die sich der Spieler bewegen soll.

...zur Antwort

Die Unreal Engine 4 ist nicht für Anfänger und richtet sich an Fortgeschritte, wenn nicht sogar an Experten. Dort wird einiges Wissen vorausgesetzt und entsprechend mager sind Tutorials und Anleitungen, insbesondere auf Deutsch.

Mit der Unity Engine bist du für den Anfang vermutlich besser dran, da es dort unzählige Tutorials, sowohl von Unity selbst als auch von einer aktiven Community, gibt.

...zur Antwort

Anime werden hauptsächlich produziert, um das Originalwerk zu bewerben, wie beispielsweise einen Manga und einen Visual Novel. Daher kommen auch selten inhaltliche Fortsetzungen zu Anime, auch wenn diese sehr populär sind, denn die Anime sollen den Zuschauer dazu anregen, das Originalwerk zu kaufen, um zu erfahren, wie es nach dem meist offenen Ende des Anime weitergeht.

Für No Game No Life haben wir 2017 einen Film bekommen. Von einer Fortsetzung der ersten Staffel ist nichts bekannt.

...zur Antwort

Vermutlich wird damit die Szene gemeint:

https://www.youtube.com/watch?v=URXMJWHJtrU

Müsste Staffel 12 Folge 17 „The Most Interesting Man in the World " sein, siehe die Internet Movie Database.

...zur Antwort

Ja, ich erstelle für jede Typendefinition eine eigene Datei. Es gibt nur eine Ausnahme, nämlich wenn es sich um eine Klasse handelt, die lediglich eine Hilfklasse für genau eine andere Klasse ist. Dann benutze ich verschachtelte Typen, siehe Nested Types (C# Programming Guide).

...zur Antwort

Das, was du zu suchen scheinst, nennt man Visual Programming. Da gibt es diverse Plugins für die Unity Engine und in der Unreal Engine 4 ist das mit den Blueprints sogar per Haus mit dabei. Es ist also durchaus etwas, was genutzt wird, auch wenn es neben den Vorteilen diverse Nachteile gibt.

...zur Antwort

Die Zeile 30 könnte das Problem sein. Dort wird eine double-Multiplikation durchgeführt, weil die Zahl "0.25" ein double-Literal ist, so dass der Methode Mathf.RoundToInt eine double-Zahl übergeben wird, diese aber eine float-Zahl erwartet. Versuch mal ein float-Literal zu verwenden und schreib "0.25f" statt "0.25". Überprüf auch den Datentyp von GlobalCookies.CookieCount und schau nach, ob der float oder double ist. Der sollte auch float sein.

Von double nach float wird nämlich nicht implizit konvertiert. Du musst ein sogenanntens Typecasting machen, um eine double-Zahl zu einer float-Zahl zu konvertieren. Das liegt daran, weil der Wertebereich von double größer ist, als der von float. Mehr dazu findest du hier: Numerische Gleitkommatypen (C#-Referenz)

Ein Typecasting von double und float machst du so:

double meineDoubleZahl = 0.25;
float meineFloatZahl = 0.25f;

// Typecasting nötig
meineFloatZahl = (float) meineDoubleZahl;
...zur Antwort

Die Waffe ist ein zufälliger Loot überall, siehe dieses Video und dessen Kommentare für Tipps:

https://www.youtube.com/watch?v=fTzGMIxbXIk

...zur Antwort