Jump to content
Unity Insider Forum

Lewo

Members
  • Posts

    18
  • Joined

  • Last visited

About Lewo

  • Birthday 04/29/1962

Profile Information

  • Gender
    Male
  • Location
    Berlin

Recent Profile Visitors

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

Lewo's Achievements

Member

Member (2/3)

1

Reputation

  1. Wenn Du das über Anmationen regeln möchtest, dann könntest Du auch 3 Anmationen nehmen. Beim Losfahren eine Animation, bei der die Räder hoch drehen (ohne Loop, aber mit Exittime), bei Fahren dann die Animation mit gleichbleibender Geschwindigkeit (mit Loop, aber ohne Exittime) und bei Anhalten dann die 3 Animation, bei der die Räder zum Stillstand kommen (ohne Loop und mit Exittime.
  2. Ich nehme an, Dein Player hat einen Rigidbody2D. Stell doch da mal bei Collision Detection von Discrete (das ist die Voreinstellung) auf Continous um. Evtl. löst das Dein Problem.
  3. Danke, das Problem lag tatsächlich nicht am Script, sondern an der Zuordnung der Methoden zu den Buttons.
  4. Gib doch mal die Zeile transform.position = new Verctor3(175f, 0f, -1300f); in die Startmethode ein, ob der Player dann gleich verschoben wird. Falls nicht, würde ich mal schauen, ob das Script auf der richtigen Ebene des Player-Gameobjects ist.
  5. public class MessageScript : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { public Text buttonText; public Text shopOwnerMessage; public Color32 messageOff; public Color32 messageOn; public GameObject[] shopUI; private int shopNumber; public void OnPointerEnter(PointerEventData eventData) { buttonText.color = messageOn; PlayerMovement.canMove = false; // wenn jetzt Mausklick erfolgt, bewegt sich der Player nicht } public void OnPointerExit(PointerEventData eventData) { buttonText.color = messageOff; PlayerMovement.canMove = true; } // Start is called before the first frame update void Start() { shopOwnerMessage.text = "Hallo " + SaveScript.charName + " - wie kann ich Dir helfen?"; } public void Message1() { shopOwnerMessage.text = "Hier ist nicht viel los"; } public void Message2() { shopOwnerMessage.text = "Das haben wir anzubieten"; Debug.Log("Shop Nr " + shopNumber); shopUI[shopNumber].SetActive(true); shopUI[shopNumber].GetComponent<BuyScript>().UpdateGold(); } private void Update() { if (PlayerMovement.canMove == true && PlayerMovement.isMoving == true) { if (shopUI != null) { shopUI[shopNumber].SetActive(false); } } } public void SetShopNumber(int s) { Debug.Log("Ändere Shopnr. auf " + s); shopNumber = s; } } Dieses Script ist aus einem Tutorial und gehört zu einem Shopsysthem Die Variable shopNumber habe ich als privat declariert. Sie sollte daher nur über den Set'er (SetShopNumber) geändert werden können. nun passiert folgendes: Von einem anderen Script wird SetShopNumber mit dem Parameter 1 aufgerufen, Das wird auch durch die entsprechende Debug Anzeige bestätigt Bei public void Message2() ist shopNumber aber immer auf 0 und die Debuganzeige wird auch entsprechend ausgegeben. Wenn ich irgendwie SetShopNumber nochmal aufrufen würde, müsste ja auch eine Debuganzeige erfolgen, was nich tder Fall ist. Wieso wird also die Variable aud 0 gesezt.
  6. Ich kopiere hier mal meine Notizen zu dem Thema rein. Ich hoffem dass ist das, was du suchst. Ein 3D Objekt in der UI darstellen - In der ProjectView einen Ordner RenderTexture erstellen - In diesem Ordner eine Componente vom Typ RenderTexture erstellen und z.B: als CharacterPanel benennen - Im Inspector für diese RenderTexture den Wert Depth Buffer auf <No depth buffer> einstellen - In der Hierarchy ein Empty erstellen und 3DView benennen - In diesem Ordner Empty erstellen und „Player“ benennen - In diesem Orner wiederum eine Camera-Componente einfügen - und einen weiteren Ordner „Character“ - Der Ordner Character bekommt den Layer 15 (benannt CharacterPanel“ zugewiesen - Die (neue) Camera bekommt im Inspector bei CullingMask den Layer „CharacterPanel“ zugewiesen o Und SkyBox = Solid Color mit Color schwarz o Projection à Orthographic o Aus dem Project-Ordner wird die Componente CharacterPanel in Camera à Target Texture gezogen - Camera ausrichten auf den Character-Ordner Das anzuzeigende 3D-Prefab in den CharacterOrdner ziehen und den Layer auf 15 setzen Camera Siza anpassen um den dargestellten Auschnitt zu ändern Anpassen der Höhe und ggf, Rotation über das Prefab In der UI eine Componente ein Empty erzeugen und „RawImage“ benennen Diesen Ordner eine Componente „RawImage“ zuweisen Das CharacterPanel aus der ProjevtView in das Feld Texture von RawImage ziehen
  7. Was mir noch auffällt intListe = new List<int>(); ist doppelt. EInmal beim Declarieren und einmal in Start
  8. Herzlichen Dank für Eure Antworten. Ich habe noch herausgefunden, dass in einem der Scripzte ein Fehler war, was aber nicht angezeigt wurde. Letztlich habe ich dann alle vorhandenen Unity.Versionen und Visual Studio de- und dann neuinstalliert, nun geht alles wieder 🙂
  9. Hallo, ich habe sein ein paar Tagen das Problem, dass meine Scripte nicht mehr als MonoBehaviour Scipt akzeptiert werden. Visual Studio ist als Editor eingestellt und wird auch geöffnet, wenn ich ein Script doppelclicke. Es ist auch kein Namens, oder Syntax-Problem. Wenn ich z.B. im Ordner Assets/Scripte ein Script Test erzeuge dann wird sofot angezeigt "No MonoBehaviour scipt in the file, or their names do not match the file Name. Das kann allerdings nicht sein, weil ich zu diesem Zeitpunkt ja nochts geändert habe, Hat wer eine Idee, was ich noch machen kann
  10. Hi, evtl sehe ich das zu simpel, aber du hast eine Kugel, die hat eine Geschwindigkeit und du hast Wände. Kannst Du nicht einfach die Zahl der Kollision abfragen und wenn 10 Kollisionen erfolgt sind, die Geschwindigkeit auf Null setzen oder was dann eben passieren soll?
  11. Hi, hast Du mal probiert, beim Rigidbdy2D deines Players Collision Detection von Discrete auf Continous umzustellen. Das sollte vermeiden, dass der Player durch den Collider fällt.
  12. Ich stelle die Ausgangslage mal vereinfacht dar: Im Projekt kann per Butto-Event auf 3 "Ebenen" aus jeweis verschiedenen Möglichkeiten ausgewählt werden Kopf Rumpf Beine Das sind jeweils eigene GameObjecte, die aus vorhandenen PreFabs instatiiert werden. In einem Array befinden sich dann immer die 3 aktuell ausgewählten GameObjecte Nun zu meiner Frage Kann ich die 3 Gameobjecte per Script als ein neues Prefab zur späteren Verwendung spreichern?
  13. Deine Inventarliste besteht aus Variablen der Art item sowiet ich das sehe. Dann versuch mal string NameDesgesuchtenItems = "Hier steht der Name des gesuchten Gameobjects"; // was wird gesucht? item gesuchtesItem = null; // erstmal ist nichts vorhanden foreach (item suchItem in inventory) { if (suchItem.name == NameDesgesuchtenItems) gesuchtesItem = suchItem; } if (gesuchtesItem != null) Debug.Log("gefunden wurde " + gesuchtesItem.Name);
  14. Also wenn ich das richtig sehe, dann deklarierst Du ein GameObject "spikes", mehr passiert aber nicht. Es ist also nicht wirklich ein GameObject da, welches zerstört werden könnte. Ich denke, du müsstest entweder ein GameObject instanzieren, welches du dann später zerstören kannst, oder eine Klasse "Spikes" schaffen, die Du in die public Spikes Variable ziehst. Diese Klasse kann dann wiedem eine Destroy Methode haben, die du aufrufen kannst.
×
×
  • Create New...