Jump to content
Unity Insider Forum

All Activity

This stream auto-updates     

  1. Yesterday
  2. Das beantwortet auch mein Lichtproblem.....zoom ich raus, werden die Meshes größer und somit die Bereiche weniger (8 gleichzeitige Lampen). Zoom ich rein, werden die Meshes kleiner und es haben wieder 8 Lampen platz pro Vertex.
  3. Hallo 🙂 Ich hoffe ihr könnt mir helfen. Ich habe eine VR Anwendung. In dieser interagiere ich mit Objekten mit einem Raycast. Wenn ich ein Objekt anwähle, kommen Menüpunkte wie in diesem Fall das Skalieren. Jetzt habe ich folgendes Problem. Wenn ich das skalieren anklicke, soll das Objekt mittels links und rechts schauen größer bzw. kleiner werden. Das geht teilweise. Nur leider nicht sehr gut, da wenn das Objekt angeklickt wird, es auf irgendeine komische Größe skaliert. Könnt ihr mir vielleicht den Code so umschreiben damit er richtig funktioniert? Hier mal der Code: using UnityEngine; using System.Collections; public class LeftRightTest : MonoBehaviour { public Transform target; public float directionCategory; public float directionValue; public static bool objectIsActive1; public static bool isSkalieren1; void Start() { transform.LookAt(target); } void Update () { objectIsActive1 = V02_1_Version_Control.isSelected; isSkalieren1 = V02_1_Version_Control.isSkalieren; if (isSkalieren1) { target = V02_1_Version_Control.selectedObject.transform; Vector3 heading = target.position - transform.position; Vector2 result = AngleDir(transform.forward, heading, transform.up); directionCategory = result[0]/10; directionValue = result[1]/10; directionValue += 1; target.transform.localScale = new Vector3(directionValue, directionValue, directionValue); } } //Left/Right test function //https://forum.unity.com/threads/left-right-test-function.31420/ Vector2 AngleDir(Vector3 fwd, Vector3 targetDir, Vector3 up) { if (objectIsActive1) { Vector3 perp = Vector3.Cross(fwd, targetDir); float dir = Vector3.Dot(perp, up); if (dir > 0f) { return new Vector2(1f, dir); } else if (dir < 0f) { return new Vector2(-1f, dir); } else { return new Vector2(0f, dir); } } else return new Vector2(); } } Hat jemand einen Vorschlag? Bin komplett am Ende und weiß nicht weiter. Danke und LG
  4. Mach mal Wireframe Mode in der Scene View an. Ich vermute, dass die Terrain-Tessellation während der Bearbeitung temporär ausgeschaltet wird.
  5. Hallo, kann sich das jemand erklären: Manchmal ist es wirklich mühsam....hatte ich noch nie. lg Mike
  6. OK, danke ... zur Zeit muss ich ein Downgrade machen, ein Haufen Arbeit !
  7. Du kannst einfach dein Projekt mit einer neueren Unity-Version öffnen, dann passiert ein Update. Weil dabei immer mal was schiefgehen kann, solltest du ein Backup deines Projekts haben. Für ein Downgrade auf eine ältere Version müsstest du Dinge rüberkopieren.
  8. Hallo, kann mann die Unity-Version im Projekt ändern oder ein neues Pojekt aufmachen und alles von dem alten Projekt kopieren ? Danke Wolfgang
  9. Vermutlich nicht... aber die Frage ist ja, was da letztenendes passiert und von wo nach wo du willst. Eine WebGL-Anwendung ist ein JavaScript-Gedöns, das im Browser ausgeführt wird. Das heißt: Der Browser geht zu deinem Server und fragt nach der HTML-Seite, auf der die Anwendung liegt. Der Server sendet nach und nach alle Dateien (HTML, JavaScript, ...) zurück. Der Browser lässt das JavaScript laufen und zeigt das Spiel an. Die Anwendung läuft jetzt also direkt im Browser und hat mit dem Server nichts mehr zu tun. Ich denke allerdings, dass deine XML-Datei auf dem Server liegt. Die Anwendung lebt also ganz woanders als deine XML-Datei. Man könnte die Datei zu den anderen Dateien in Schritt 2 packen, aber üblicher ist es, dass deine Anwendung einfach nochmal Kontakt zum Server aufnimmt. Und das geht am einfachsten über HTTP, denn das spricht dein Server ja offenbar, sonst würden Schritt 1 und 2 nicht passieren. Und HTTP sprichst du in Unity am einfachsten mit UnityWebRequest.
  10. Last week
  11. Hallo Community, ich melde mich nach langer Zeit mal wieder zurück. Eine lange Zeit hatte ich keine Lust an einem Spieleprojekt zu arbeiten. Mein letztes Projekt war bezüglich des Umfangs und er Machbarkeit bezogen auf meine Person etwas überdimensioniert gewesen. Allerdings lässt mich der Drang etwas in dieser Richtung zu erstellen nicht los. Daher startete ich seit ein paar Tagen mit einem neuen Projekt. Diesmal soll es etwas sein was ich auch fertig bekommen möchte. In diesem Zusammenhang habe ich mir einen Klassiker ausgesucht. Ich erstelle einen Tower-Defence Clone. Einen Arbeitstitel habe ich noch nicht. Daher erhält es von mir vorerst die Bezeichnung „Tower“. Die erste Location habe ich bereits fertig. Jetzt geht es um die Spielbalance der Anzahl der Wellen, Gegner, Waffen etc. Hier ein paar Bilder vom ersten Level.
  12. Danke für den Tipp! Gehe ich richtig in der Annahme, dass diese Methode, via WebRequest, der einzige Weg ist um .xml-files via WegGL-Application zu laden? Gruss, Peachplayer
  13. Hallo Habe mich auch schon gewundert. Für bots sind die aber echt gut gemacht. Inhalt passt meist grob und wirkt auch nicht wie aus dem satzbaukasten. chrische
  14. Ziemlich sicher ist das wieder einer dieser weirden Accounts, die wir in letzter Zeit immer haben. 9 Beiträge in immer denselben stinkalten Threads rausquetschen, Pause und dann im zehnten Beitrag irgendeinen Link posten. Da die Beiträge scheinbar nicht von Bots, oder zumindest nicht von ordinären Bots geschrieben werden, gibt's gegen die schon recht uninteressanten Beiträge immer nichts zu sagen. Sind aber auffälligerweise immer so Ein- bis Zweizeiler. Trotzdem kann das als Werbemaßnahme nicht besonders effizient sein. @creatornoah96 Wenn du kein Bot oder anderweitig zum Spammen angemeldeter Mensch bist, kannst du mir doch sicherlich erklären, warum dein Account und mehrere andere sich auffälligerweise genau gleich verhalten?
  15. ... ziemlich sicher dein post ist im falschen forum gelandet ¯\_(ツ)_/¯ (@admin feel free to delete my post)
  16. Hab mir letztens eine neue WebCam zugelegt und bin durchaus zufrieden. Ich muss für einen Job oft an Videokonferenzen teilnehmen und meine alte war wirklich nicht mehr schön. Hab dann ein bisschen recherchiert und ganz viel gefunden, (Link entfernt) dieser Artikel über Webcams hat mir bei meiner Entscheidung jedoch am meisten geholfen und da dachte ich ich teil den mal mit euch, falls ihr auch auf der Suche nach einer neuen Webcam seit. Mich würde auch interessieren welche Webcams ihr selber habt und welche Erfahrungen ihr mit den einzelnen Modellen gemacht habt 😀
  17. Um meine Anfrage zum Abschluss zu bringen ... und vielleicht zu erfahren; wie viel von dem Code s.u. sinnvoll ist 😅 ... Testing in Unity (2020.1.11f1) & Android-Studio (4.1): (1) aus Unity unityLibrary in Android Studio als Android Library (Konfiguration ist wie die Tutorials dies i.d.r zeigen) integriert (2) in unityLibrary hinzugefügt: package com.unity3d.player; import androidx.fragment.app.FragmentActivity; public class thisUnityPlayer { protected static UnityPlayer mUnityPlayer = null; public static UnityPlayer getUnityPlayer(FragmentActivity thisFragment){ if (mUnityPlayer == null){ mUnityPlayer = new UnityPlayer(thisFragment); } else { mUnityPlayer.resume(); } return mUnityPlayer; } public static void resetUnityPlayer(){ if (mUnityPlayer != null){ mUnityPlayer.destroy(); } } und das Fragment für Unity in unityLibrary auch abgelegt: package com.unity3d.player; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; public class UnityFragment extends Fragment { protected UnityPlayer mUnityPlayer=null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mUnityPlayer =thisUnityPlayer.getUnityPlayer(getActivity()); if(mUnityPlayer.getView().getParent() != null) { ((ViewGroup) mUnityPlayer.getView().getParent()).removeAllViews(); } View view = inflater.inflate(R.layout.fragment_unity, container, false); //UnityFragmentLayout ist das FrameLayout ((FrameLayout) view.findViewById(R.id.UnityFragmentLayout)).addView(mUnityPlayer.getView(), FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); mUnityPlayer.requestFocus(); mUnityPlayer.windowFocusChanged(true); return view; } @Override public void onDestroy() { mUnityPlayer.quit(); super.onDestroy(); } @Override public void onPause() { super.onPause(); mUnityPlayer.pause(); } @Override public void onResume() { super.onResume(); mUnityPlayer.resume(); } } noch vorsichtshalber in MainActivity das onDestroy erweitert: @Override protected void onDestroy() { super.onDestroy(); thisUnityPlayer.resetUnityPlayer(); <-- das hier eingefügt } und es scheint: in kleinen Test ganz gut zu laufen... 😎 UnityAndroidFragment.mp4 vG Nadin
  18. webRequest.downloadHandler.text Da gibt dir der DownloadHandler einen String zurück. Ich glaube, die eleganteste Lösung wäre, einen DownloadHandler zu schreiben, der dir direkt ein Xml-Objekt zurückgibt, aber ansonsten sollte das auch ein Einzeiler sein, das mit dem Default-Handler zu machen. Hab mal C# XML from string gesucht und würde sagen: XmlDocument xml = new XmlDocument(); xml.LoadXml(webRequest.downloadHandler.text); Naja, Zweizeiler
  19. Danke für den Tipp! Wie kann ich den Rückgabewert des "WebRequest" , also das Text-file, in ein .XML-file umwandeln? Gruss, peachplayer
  20. Z.B. so: https://docs.unity3d.com/ScriptReference/Networking.UnityWebRequest.Get.html
  21. Hallo, @malzbie Sorry, dann habe ich mich unklar ausgedrückt. Meine Art soll nicht angeblich schneller sein , im gegen teil, ich habe bei this.fMuenungsfeuerZeit einen fix wert eingesetzt und mit if (this.fMuenungsfeuerZeit < Time.time && this.bFeuer == false) ausprobiert und hatte ca.50 mal so viele aufrufe in der gleichen Zeit (laut Profieler) als bei meiner Variante. Was die Ausführung zum Stottern gebracht hat.Mit meiner Variante war das Stottern verschwunden. Da ich den ganzen Code nicht kenne sollte das auch nur eine Vermutung von mir sein. Da ich vorher nur in C Programmiert habe kenne ich mich in C# nicht 100% aus. Ich habe das auch mal in C umgeschrieben und ausprobiert. Bei der Original Variante habe ich einen Stack Overflow hervorgerufen, bei meiner Variante nicht daher die Vermutung. Gruß Jog
  22. @Jog Das musst du mir mal erklären. Warum soll seine Art des Aufrufs langsamer sein, als die deine?
  23. Hallo, Wollte gerade anmerken, dass die Raumschiffe stilistisch nicht zu den anderen passen, aber beim schreiben ist dann Sektor C-6-4 bei meinen Hirnwindungen durchgedrungen.😉 Weiter so. Gruß Jog
  24. Das Projekt nimmt langsam Gestalt an, das ist gut 👍 Ich habe noch einen Vorschlag: Du könntest beim Soundeffekt vom Schuss jedes mal den Pitch Wert zufällig variieren (z.B. Random.Range(0.85F, 1.15F)), so dass jeder Schuss ein wenig mehr Variation hat und es dynamischer klingt.
  25. Ich denke es ist nicht die Funktion SetActive(), die langsam ist, sondern es liegt eher am GameObject selbst. Wahrscheinlich gibt es da für Unity einfach "viel zu tun", um es ein/aus zu schalten. Wenn du es mit einem anderen oder leeren GameObject machst, wird es sicher sehr schnell sein. Hatte aber noch nie Performance Probleme beim ein und ausschalten. Ich denke das Problem liegt daran, dass da etwas nicht so elegant entwickelt hast. Edit: War zu langsam 🤪
  26. Hallo, Der Knackpunkt liegt in dieser if abfrage. Du vergleichst this.fMuenungsfeuerZeit mit Time.time, da Time.time die Zeit seit dem Spielstart zurück gibt und im Hintergrund weiter läuft hast du eine undefinierte Anzahl von aufrufen. Diese laufen so schnell ab das du einen Stottereffekt erhältst. Du musst eine Variable erstellen in der du Time.time aufaddierst und bei erreichen der gewollten zeit wieder auf Null setzt. z.b. privat float MySollwert = 0f; ....... ..... void Update() {.... MySollwert += Time.time; ..... ..... } if(Input.GetKey (KeyCode.Space)) { if (this.fMuenungsfeuerZeit < MYSollwert && this.bFeuer == false) { //Muendungsfeuer_rechts.SetActive(true); //Muendungsfeuer_links.SetActive(true); //Muendungsfeuer_rechts.renderer.enabled = true; //Muendungsfeuer_links.renderer.enabled = true; MySollwert =0f; this.bFeuer = true; } } Gruß Jog
  1. Load more activity

Announcements

Hy, wir programmieren für dich Apps(Android & iOS):

Weiterleitung zum Entwickler "daubit"



×
×
  • Create New...