Jump to content
Unity Insider Forum

StolleJay

Members
  • Content Count

    135
  • Joined

  • Last visited

Community Reputation

5 Neutral

About StolleJay

  • Rank
    Advanced Member
  • Birthday 11/14/1987

Contact Methods

  • Website URL
    http://home-of-stolle.de

Profile Information

  • Gender
    Male
  • Location
    Germany (Sachsen)

Recent Profile Visitors

4,361 profile views
  1. Danke. Ich werde es mal versuchen. Aktuell schnell mal getestet und ja das mit den 0 und 360 stimmt irgendwie noch nicht.
  2. Ja so was wäre dann doch mehr oder weniger Sinnfrei Die Camera soll die Position halten bis man wieder Q oder E drücke ohne ALT.
  3. Das Script ist noch nicht richtig Optimiert deshalb habe ich noch das .transform. drin Ja die Camera ist ein Child vom Controller. Die Camera selber drehe ich nicht sondern den Controller. Dadurch wird die Camera ja mit gedreht. Der Controller ist auch eine Art PoV (Point of View). Das mit den jeweils 45° klappt ja einwandfrei nur das von "Frei" Drehen zurück zu den jeweils 45° Schritten bekomme ich nicht hin.
  4. Hallöchen, ich Melde mich heute mal wieder mit einem kleinen Problemchen an dem ich schon seit 1-2 Tagen hänge und nicht weiter komme. Ich habe ein Script für meine Kamera mit dem ich das Übergeordnete Objekt (Mein Camera Controller) um jeweils 45 Grad drehen kann. Zusätzlich kann man die Kamera aber auch wenn gewünscht ohne diese 45 Grad Frei Rotieren. Mein Problem dabei ist jetzt jedoch das wenn ich die Kamera Frei Drehe und und bei einem Winkel von zb. 51 lasse wie bekomme ich es hin das wenn ich die Kamera wieder um normale 45 Grad drehen will er erst mal von den 51 auf 90 Grad hoch geht bzw. auf 45 runter bevor diese wieder um ganze 45 Grad Rotiert? using UnityEngine; public class CameraController : MonoBehaviour { public Camera camera; public Transform controller; public float moveSpeed = 4; public float rotateSpeed = 20; public bool leftMove = false; public bool rightMove = false; public bool upMove = false; public bool downMove = false; public float zoomMin = 0.75f; public float zoomMax = 3; public float zoomSpeed = 0.25f; // Update is called once per frame void Update () { // Movement moveLeftRight(); moveUpDown(); // Rotation rotateLeftRight(); // Zoom zoomInOut(); } void moveLeftRight() { //MoveLR... } void moveUpDown() { //MoveUD... } void rotateLeftRight() { if (Input.GetKey(KeyCode.E) && Input.GetKey(KeyCode.LeftAlt)) { controller.transform.Rotate(0, -rotateSpeed * Time.deltaTime, 0); } else if (Input.GetKeyDown(KeyCode.E)) { controller.transform.Rotate(0, -45, 0); } if (Input.GetKey(KeyCode.Q) && Input.GetKey(KeyCode.LeftAlt)) { controller.transform.Rotate(0, +rotateSpeed * Time.deltaTime, 0); } else if (Input.GetKeyDown(KeyCode.Q)) { controller.transform.Rotate(0, +45, 0); } } void zoomInOut() { //Zoom... } }
  5. Tatsache... Hab das destroyable Script nun umgebaut und siehe da... 60FPS ohne Probleme Danke für eure Hilfe
  6. Das habe ich ich vergessen zu erwähnen. Auf einer Fläche (Unity Maße) von 8x8 werden 80 Objekte gespawnt. Das größte bzw. Komplexeste Objekt hat nur 102 tris von diesem gibt es dann ca. nur um die 20. die anderen 3 Objekte haben weit unter 100 tris. Also wirklich Low-Poly. Auch wenn ich nur 40 Objekte spawnen lasse bekomme ich nicht wirklich mehr FPS. Edit: Kann es an diesem "destroyable.Update" liegen? Alles in diesem Update rufe ich auf bzw. führe ich aus wenn eine variable auf "true" steht welche normal also bei Spielstart auf "false" gesetzt ist. Das ist auch der Fall das habe ich schon geprüft. Also sollte er das Update ja gar nicht aufrufen bzw. den Inhalt ausführen.
  7. Hallo, bisher habe ich keinerlei Probleme in Sachen Performance etc. gehabt. Heute wo ich ein neues, relativ kleines Script fertig habe und dies auch funktioniert ist mir aufgefallen das nachdem ich dieses Script in der Szene Aktiviere ich von 60FPS auf unter 30FPS falle. Ich habe schon die Objekte die hier erstellt werden auf "Static" gestellt (damit diese auch in die Kategorie Occlusion Culling fallen) aber es wird nicht besser. using System.Collections.Generic; using UnityEngine; public class randomObjectGeneration : MonoBehaviour { List<Transform> objList = new List<Transform>(); Transform obj; public Transform[] go; public int objNumber = 0; public float objSizeMin = 1; public float objSizeMax = 1; private int objID = 0; private float objSize; private int sizeX; private int sizeZ; // Use this for initialization void Start() { sizeX = FindObjectOfType<settings>().sizeX; sizeZ = FindObjectOfType<settings>().sizeZ; for (var i = 0; i < objNumber; i++) { var index = Random.Range(0, go.Length); var pos = new Vector2(Random.value * sizeX, Random.value * sizeZ); objSize = Random.Range(objSizeMin, objSizeMax); Vector3 setpos = new Vector3(pos.x, 0, pos.y); Vector3 setrot = new Vector3(0, Random.Range(0, 360), 0); Vector3 setsize = new Vector3(objSize, objSize, objSize); objID++; obj = Instantiate(go[index], setpos, Quaternion.Euler(setrot)); obj.localScale = setsize; obj.name = go[index].name + "_[" + objID + "]"; obj.parent = transform; objList.Add(obj); } } } Ist da evtl. am Script etwas falsch oder habe ich etwas Übersehen? Das ist das erste mal das ich beim Start mehrere Objekte in untersch. Größe, Rotation etc. pp. Instantiieren lasse. Ich hoffe ihr könnt mir da weiterhelfen
  8. Damit habe ich mich noch nie direkt selbst beschäftigt. Mal schauen wann ich die Zeit dazu finde es mal zu probieren.
  9. Naja als "bescheuert" würde ich diesen Vorschlag nicht ansehen. Es war ja lediglich ein versuch Dein Vorschlag ist der den ich als erstes ja gleich versucht hatte aber mit einem Box-Collider. Die Box bzw. das Objekt war ja nur ein Versuchsobjekt. später sind es mehrere sehr unterschiedliche Objekte wo eine Capsule als Collider nicht in Betracht kommt bzw. nicht in Betracht kommen kann da sich die Capsule "beschissen" verformen lässt. Auch muss der Collider für das Objekt unbedingt die Maße des Sichtbaren Objektes haben da bringt es mir nichts zu P mal Daumen einen Collider zu verwenden. Ich habe auch weiterhin noch einiges versucht aber komme zu keinem guten Ergebnis da entweder such die einzelnen Meshes auseinander dehnen oder diese gar nicht erst auf den Objekt reagieren. Ich frage mich dennoch immer wieder wieso die Clothes keinen Box-Collider mehr unterstützen. Ich finde ein Sphere oder ein Collider der Rundungen hat benötigt viel mehr Rechenleistung als eine ganz normale Box. Muss ich nicht verstehen ^^
  10. Stimmt. Darauf hätte ich auch kommen können Danke. Aber so richtig hinbekommen tu ich es mit den Joints nicht. In Cinema 4D schon aber Exportiert bzw. in Unity Importiert bekomme ich das ganze nicht. Auch direkt mit Hinge Joints habe ich schon probiert aber da sieht das Ergebnis eher Mau aus da ich so die Lamellen direkt in einzelne Objekte teilen muss..
  11. Hallo, ich bin aktuell dabei eine Art "Kühlhaus Lamellen" zu machen welche sich natürlich Physikalisch bewegen bzw. beiseite schieben sollen sobald ein Objekt (Kiste) durch geschoben wird. Da ich schon sehr lange nichts mehr mit unity gemacht und ich mal gegoogelt hab, ja ich kann das 😶, habe ich gelesen das die Cloths in Unity nur noch mit Sphere und Capsule Collider (also keine Box Collider wie ich sie bräuchte) funktionieren und auch nur dann wenn man diese dem Cloth hinzufügt werden. Damals (Fragt mich nicht welche Unity Version das war) ging dies wesentlich einfacher. Nun meine Frage. Lässt sich so etwas dennoch irgendwie ohne extra viel Scripting (am besten ohne) Realisieren?
  12. Der Vollständigkeit halber möchte ich nur sagen das ich es hinbekommen habe.
  13. Ich erwarte keine 1:1 Lösungen auch scheitere ich nicht bei Copy&Paste. Ich habe es Anfangs so Übernommen wie von Sasche geschrieben. Da das so aber nicht geklappt hat hatte ich so noch etwas rumprobiert. Da bin ich wieder bei dem Punkt wieso er das so Postet wenn es so nicht Richtig ist/sein kann? Da brauch ich ehrlich gesagt auch nicht Fragen wenn man schon Falsche Sachen gesagt bekommt. Das OnGUI leer sein muss ist mir bewusst. Es hätte ja aber sein können das so dort Parameter verwendet werden können.
  14. Gut das mit dem MonoBehaviour da hätte ich auch selbst drauf kommen können. Trotzdem kein Grund So zu Reagieren... Und wieso hat er es dann oben nicht gleich so Geschrieben? Sorry aber wenn dann sollte man den Hilfesuchenden auch die Richtigen Wörter/Begriffe geben. Ich kenne mich in der Richtung eben nicht aus. Dafür sollte man sich evtl. auch schämen das man nicht gleich alles weiß wo man "Neu" ist Selbst wenn ich es jetzt so mache wie du gesagt hast kommt "Script error (MinMaxDrawer): OnGUI() can not take parameters.". Was soll da sonst rein wenn dieses OnGUI keine Parameter übernehmen kann? @CustomPropertyDrawer(MinMax) class MinMaxDrawer extends PropertyDrawer { function OnGUI(position : Rect, property : SerializedProperty, label : GUIContent) { //GUI.Label (Rect (10, 10, 100, 30), min + ":" + max); GUI.Label (Rect (10, 10, 100, 30), "Test"); } }
  15. Nein. Mein ursprüngliches Script ist noch genauso wie vorher. Das ist meine MinMax.js: class MinMax extends System.ValueType { var min : int; var max : int; } function Start () { } function Update () { } und das die MinMaxDrawer.js: @CustomPropertyDrawer(MinMax) class MinMaxDrawer extends PropertyDrawer { function OnGUI(position : Rect, property : SerializedProperty, label : GUIContent) { GUI.Label (Rect (10, 10, 100, 30), min + ":" + max); //Das meine ich mit "GUI-Sachen". Ist zum testen... } } function Start () { } function Update () { } Wie gesagt vorhin habe ich es genau so gemacht ohne das sich im Inspector etwas verändert hat. Jetzt sagt er mir wenn ich die 2 Scripts auf das Objekt in der Hierarchy schieben will:
×
×
  • Create New...