Jump to content
Unity Insider Forum

KaBau

Members
  • Content Count

    113
  • Joined

  • Last visited

  • Days Won

    3

KaBau last won the day on May 8

KaBau had the most liked content!

Community Reputation

14 Gut

About KaBau

  • Rank
    Advanced Member
  • Birthday 08/03/1973

Profile Information

  • Gender
    Male
  • Location
    Hildesheim

Recent Profile Visitors

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

  1. Ohne auf das Technische einzugehen: Kannst du nicht einfach ersteinmal ein paar kleine Tiere erstellen? Wenn ein Gebiet komplett leer ist muss der Spieler ja irgendwo hin ausweichen. Damit dieser Weg nicht zu langweilig wird, würde ich ihm schon ab uns zu eine Kleinigkeit "zum Fraß vorwerfen".
  2. Hi, ich bin geade bei meinem ersten Spiel (einem Space Shooter) , in dem es aber verschiedene Levels gibt. Ich habe mir für die Steuerung, Grundbeleuchtung und UI ein Standartlevel erstellt. Dieses ergänze ich je nach Anforderung und befülle die Layer mit Gegner, Hintergrund etc. Mal als Gegenfrage: was wird eingendlich der Sinn deines Spiel? Unity ist ja ein Werkzeug, welches benötigt wird, um ein Ziel zu erreichen. Mit einer Säge kann ich auch tagelang Bretter durchtrennen. Aber wenn ich die Bretter für nichts benötige, wird es sicher irgendwann etwas öde. Setzt dir doch ersteinmal ein Ziel - oder überleg, was für ein Spiel zu erstellen. Und dann versuche mit Unity dieses Ziel zu erreichen. Dabei werden Fragen kommen, welche du hier stellen kannst. In der Regel kann dir hier sicher jemand helfen. Ergänzung: Du erstellst dir ja eigene Prefab. Bei mir sind das z.B. die Gegner oder Teile des Hindergrund. Somit hast du ja die von dir genanten perönlichen Standart-Assets.
  3. 3D Max ist Wir nutzen in unserem Architekturbüro 3D Max. Die Anwender beurteilen eine neue Version nicht nach den neuen Möglichkeiten, sondern wie stabil die neue Version läuft. Ich habe vor 10 Jahren mit Cinema 4D gearbeitet (somit ist meine Meinung evenuell etwas veraltet) und für den Einstieg war es klasse. Es hatte damals einen Objektmanager, in dem man wie bei Verzeichnisen alles ordnen konnte. Ich arbeite für das Gaming nun mit Blender. Seit Version 2.8 verstehe ich auch, wie es funktioniert.
  4. Hi, was hat geholfen, bzw. woran lag es?
  5. Eventuell hilft dir dieses Video von Michael Mark https://www.youtube.com/watch?v=NDbeFJTeLvM Ich selber habe es aber noch nicht ausprobiert - mein Spiel ist noch nicht soweit.
  6. KaBau

    YouTube Lizenzkram

    Ich nutze für mein Spiel die Musik von Eric Matyas https://soundimage.org/ Hier gibt es auch Loops.
  7. Mit dem Hub kanst du doch verschiedene Versionen nebeneinander installieren und deine Projekte dann den installierten Versionen zuweisen. Somit sollte der Schritt zurück doch immer einfach sein. Trotzdem an alle hier zur Wiederhohlung ein wichtiges Wort:
  8. Irgendwie hast du verschiedene Pixelauflösungen. Die Berge im Hintergrund sind sehr grob (wirken wie 8-Bit, auch von der Anzahl der Farben), die Kisten und der Player sind feiner aufgelöst (und wirken deshalb fast wie 16-Bit). Bei den Animationen der wackelden Elemente wirkt es zudem komisch, das die Pixel kippen. Also ich meine, das ein pixelieges Bild gedreht wird, obwohl eigendlich je nach Neigungswinkel ein eigenes pixelieges Bild erscheinen müßte. Mich, der damals noch vor solchen 8-Bit Spielen gesesen hat, stört das leider.
  9. Mit den Parameter StartCoroutine(cameraShake.CamShake(.3f, .4f, 4)); sieht es nun so aus: cameraShake.mp4
  10. Ich nutze "maxHealth" noch um zu überprüfen, ob bei der Aufnahme eines Erste Hilfe Kasten "currentHealth" nicht über "maxHealth" steigt, sprich der im Inspector eingetragene Wert nicht überschritten wird. Leider erscheint nach jeder Änderung eines einzelnen Script diese Fehlermeldnungen für ALLE Scripte. Und da ich häufig damit Arbeite, dass ein GameObjekt ein anderes GameObjekt an- und ausschaltet, ist diese Liste sehr lang. Gibt es zu diesem Vorgehen alternativ die Möglichkeit, dass ein Script in einem ausgeschaltetes GameObjekt doch irgendwie aktiv ist und verschiedenes überprüft? Ist vielleicht ein eigenes Thema wert, aber würde mir bei vielen dieser Fehlermeldungen helfen.
  11. Hi, ich erhalte seit längerem zu verschiedenen Scripten folgende Fehlermeldung (hier ein Beispiel): "Assets\scripts\Lvl6\EnyB6CornerFireYes.cs(10,16): warning CS0649: Field 'EnyB6CornerFireYes.boltYes' is never assigned to, and will always have its default value null". Nach meinem Verständnis wird mir mitgeteilt, dass die Variable "boltYes" nicht zugewiesen ist oder sich nicht ändert und somit immer den Vorgabewert "null" behält. OK, gelesen, aber es stört mich doch auch gar nicht. Die Variable (in diesem Fall das GameObjekt) selber ändere ich ja auch gar nicht, sondern schalte es nur an und aus. Das dazugehörende Script: public class EnyB6CornerFireYes : MonoBehaviour { [SerializeField] GameObject fireYes; [SerializeField] GameObject boltYes; private void Start() { fireYes.SetActive(false); boltYes.SetActive(true); } private void Update() { if(fireYes == null) { Destroy(gameObject); } } private void OnTriggerEnter(Collider other) { if (other.name == "FireYesCollider") { fireYes.SetActive(true); boltYes.SetActive(false); } } private void OnTriggerExit(Collider other) { if (other.name == "FireYesCollider") { fireYes.SetActive(false); boltYes.SetActive(true); } } } In einem anderen Fall wird diese Fehlermeldung bei einer Float-Variable "maxHealth" geschrieben. Dort ändere ich diese Variable auch nicht, stimmt. Ich nutze die Variable nur, um einen Wert aus dem Inspector in das Script zu überführen: [SerializeField] int maxHealth; int currentHealth; private void Start() { currentHealth = maxHealth; ... Wie kann ich diese (für mich unnötigen) Fehlermeldungen unterbinden, bzw. muss ich irgend etwas unternehemen, damit diese Fehlermeldungen nicht mehr auftauchen?
  12. Geschafft: Das von @Jomnitech genannte Tutorial hat mich auf dem richtigen Weg gebracht. Ich habe nicht wie am Ende vorgeschlagen das Asset verwendet, sondern lieber etwas eigenes programmiert (da weis ich besser, was in meinem Spiel passiert). Wer das Video nicht gesehen hat: Die Camera wurde einen EmtyGame Objet "CameraHolder" untergeordnet. Somit kann ich dieses unabhängig von der Camera bewegen (welche ein eigenes Bewegungsscript hat). In meinem "PlyHealth.cs" Script habe ich folgenes eingebaut: Am Anfang: public CameraShake cameraShake; und in dem Abschnitt, welcher prüft, ob der Player getroffen wurde: bool shakeYes = cameraShake.cameraHolderShakeYes; if (!shakeYes) { StartCoroutine(cameraShake.CamShake(.2f, .5f, 4)); // Wackeln der Camera mit Script CameraShake.cs } Im Inspektor habe ich dann die entsprechende Zuweisung zum "CameraHolder" erstellt. Das "CameraHolder" Objekt hat folgendes Script: public class CameraShake : MonoBehaviour { public bool cameraHolderShakeYes = false; //Script PlyHealth.cs greift hierrauf zu Vector3 cameraHolderPos; private void FixedUpdate() { if (cameraHolderShakeYes) { transform.position = cameraHolderPos; } } // wird im Script PlyHealth.cs gestartet public IEnumerator CamShake(float duration, float magnitude, int steps) { cameraHolderShakeYes = true; Vector3 originalPos = new Vector3 (0,0,0); int shakeSteps = steps - 1; float stepDuration = duration / steps; float startCamHolderX = transform.position.x; float startCamHolderZ = transform.position.z; float targetCamHolderX; float targetCamHolderZ; for (int i = 1; i <= shakeSteps; i++) { targetCamHolderX = Random.Range(-1f, 1f) * magnitude; targetCamHolderZ = Random.Range(-1f, 1f) * magnitude; for (var time = 0.0f; time < stepDuration; time += Time.deltaTime) { var progress = time / stepDuration; cameraHolderPos.x = Mathf.Lerp(startCamHolderX, targetCamHolderX, progress); cameraHolderPos.z = Mathf.Lerp(startCamHolderZ, targetCamHolderZ, progress); yield return null; } startCamHolderX = targetCamHolderX; startCamHolderZ = targetCamHolderZ; magnitude *= 0.6f; yield return null; } float lastStepDuration = stepDuration + 0.1f; for (var time = 0.0f; time < lastStepDuration; time += Time.deltaTime) { var progress = time / stepDuration; cameraHolderPos.x = Mathf.SmoothStep(startCamHolderX, originalPos.x, progress); cameraHolderPos.z = Mathf.SmoothStep(startCamHolderZ, originalPos.z, progress); yield return null; } cameraHolderShakeYes = false; } Einige Anmerkungen: - die Variable "magnitude" reduziere ich zwischenzeitlich um einen sanfteren Auslauf des Effekt zu bekommen. - Vor der letzten Schleife habe ich die "stepDuration" für diesen Durchgang mit der Variablen "lastStepDuration" erhöht, da die Endposition 0,0,0 nie richtig eingenommen wurde. - ich habe es mit "Mathf.Lerp" und "Mathf.SmoothStep" probiert. Auch wenn der Unterschied minimal ist gefällt mir letzteres besser.
  13. Sag mal, wie häufig willst du eigentlich noch ein Thema mit dem Titel "Finde die Fehlerquelle nicht" erstellen? Versuch doch im Titel dein Problem zu benennen. Das macht es uns als Forenmitglieder einfacher zu Wissen, ob wir eventuell helfen können.
  14. Hi, ich möchte gerne, dass bei einem Treffer meines Player die Camera etwas zittert. Bevor ich mich auf einem komplett falschen Weg begebe: Ich stelle mir vor, dass ich mit "Mathf.PingPong" die Bewegung ermittle und mit einer zweiten "Mathf" Berechnung die "float length" (gemäß https://docs.unity3d.com/ScriptReference/Mathf.PingPong.html ) verändere um diese auf "0" zu bekommen. Ob ich nun mit "Mathf.Lerp" oder "Mathf.SmothStep" oder einer anderen Berechnung arbeite werde ich noch testen. Meine Fragen hierzu: 1: kann bzw. darf ich überhaupt mit einer "Mathf" Berechnung in eine andere "Mathf" Berechnung eingreifen? 2: gibt es eventuell einen eleganteren Weg um ein Zittern zu erstellen?
  15. Hi, ich denke mir, dass du nicht "VC2015" meinst, sondern "VS" für "Visual Studio". Aktuell ist derzeit die Version 2019. Ich hatte mit der Version 2017 (welche ich nun nutze) auch mal das Problem nach einem Update von Unity. Mir blieb nichts anderes übrig, als Visual Studio komplett zu deinstallieren und bei der Installation von Unity Visual Studio mit zu installieren. Danach klappte alles wie gewollt. Edit: jetzt lese ich erst, dass dieses Thema schon recht alt ist. Eventuell hilft meine Antwort ja doch noch.
×
×
  • Create New...