Jump to content
Unity Insider Forum

Jomnitech

Members
  • Posts

    334
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by Jomnitech

  1. Du könntest z.B. Sprite Mask verwenden, welche dann dein Nebel-Sprite an der bereits erkundeten Stellen ausschneidet?
  2. Müsste das nicht nameField.Text.ToString() sein?
  3. Danke für euer Feedback Ja, da habe ich noch deutliche Probleme die Skalierung vernünftig hin zu bekommen. Mir persönlich gefällt der Effekt an und für sich, aber stimmt, es passt nicht zur retro Optik. Liegt daran dass es nicht gezeichnet ist, sondern mit Bones animiert ist.
  4. @Peanut Komisch, habs mal auf itch.io geladen, dann muss auch nix runterladen 🙃, Link im Post oben.
  5. Hallo Zusammen Da ich momentan in meinem Hauptprojekt so gar nicht weiter komme, habe ich mal was kleiners angefangen. Was haltet Ihr davon bezüglich dem Artstyle und Animationen? Fängt es das retro Feeling ein oder eher nicht? Spielen: https://jomnitech.itch.io/kernslegend Steuerung mit Controller oder mit Maus und Tasta (ASDW/Pfeile,Space,LMT,RMT,MMT)
  6. Ich denke das Schlagwort was du suchst heisst: Node Based Editor.
  7. Ich denke mal, dass der State schon getriggert wird, nur du setzt ja deine Ente wiederum permanent in den Idle state wenn du "Space" nicht drückst. Ausserdem kann ich dir empfehlen beim Animator mit Triggers zu arbeiten, statt eine int zu setzen.Edit2: Ok hab das falsch verstanden, ist ja die Animation des Spielers. Dein Prblem wird darin liegen, dass du keine Referenz hast zum Animator des getroffenen Ziels. Hiermit müsste es gehen: using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerControl : MonoBehaviour { public Animator ani; public Animator ent; public int EnteState1 = 0; public int EnteState2 = 1; public int EnteState3 = 2; public int IdleState = 0; public int ShootState = 1; public AudioClip MusicClip; public AudioSource MusicSource; GameObject target; Ray myRay; RaycastHit hit; // Use this for initialization void Start() { MusicSource.clip = MusicClip; target = GameObject.Find("Ziel"); } // Update is called once per frame void Update() { // Ziel anvisieren --------------------------- Vector3 targetPosition = new Vector3(target.transform.position.x, target.transform.position.y, target.transform.position.z); transform.LookAt(targetPosition); // Feuern ----------------------------------------- if (Input.GetKeyDown(KeyCode.Space)) { MusicSource.Play(); // Soundabspielen setAnimator(ShootState); // Animation Schuss myRay = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); // Kontrollstrahl if (Physics.Raycast(myRay, out hit)) { if (hit.collider.gameObject.tag == "Ente1") // Ins Ziel getroffen { ent = hit.collider.GetComponent<Animator>(); setAnimator2(EnteState2); print("Getroffen"); } if (hit.collider.gameObject.tag == "Ente2") // In den Schwanz, bzw. Kopf getroffen { ent = hit.collider.GetComponent<Animator>(); setAnimator2(EnteState2); print("Getroffen" + EnteState2); } } } else { setAnimator(IdleState); } } private void shoot() { } void setAnimator(int n) { ani.SetInteger("State", n); } void setAnimator2(int n) { // print ("State"+ n); ent.SetInteger("EntenState", n); // <<<<<<<<<<<<<<<<<< Hier geht scheinbar nicht !!!!!! } } Edit: Ich würde das sowieso unterteilen, einmal dein Gewehr, welches den Raycast schiesst, und ein separates script auf der Ente welches dann die Animation steuert.
  8. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Coin : MonoBehaviour { private int coinCounter; public Text scoreText; public float randomX; public float randomY; // Start is called before the first frame update void Start() { coinCounter = 0; transform.position = new Vector2(Random.Range(-randomX, randomX),Random.Range(-randomY,randomY)); } // Update is called once per frame void Update() { } void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Coin") { coinCounter++; Destroy(other.gameObject); scoreText.text = "Score: " + coinCounter.ToString(); Debug.Log("Score: " + coinCounter); } } } So vielleicht? Ist deine Frage überhaupt noch aktuell?🙃
  9. Hallo Zusammen Mir ist aufgefallen, dass ich die Anzahl der Materialen bei einem Objekt nicht mehr einstellen kann. Google meinte ich es sei ein bug in der 2018er Version, also habe ich jetzt die 2019.1 geladen, Spiel importiert, aber ich kann die Anzahl immer noch nicht auswählen. Ist das jetzt neu wo anders oder ist das ein Fehler? Edit: Super peinlich, grad gefunden, hat sich nur minimiert...
  10. 2d oder 3d? Könnte man ev. mit einem Line Renderer machen:
  11. Weiss nicht ob die Frage noch aktuell ist, aber kann es sein dass du die in der Scene platzierten Tiles als Prefab gespreichert hast?
  12. Ich habe meine Terrain mit Strasse komplett in Blender gemacht, da kann man sowas recht easy machen. Nachteil ist, dass es eben dann kein Unity Terrain ist und somit Funktionen wie Brushes nicht genutzt werden können. Aber sonst würd ich mal im Asset Store vorbei schauen, da gibt es recht viele Tools die genau das machen können.
  13. Ich denke das wird man am besten mit einem Shader bewerkstelligen können. Mit dem neuen Shader Graph kann man das auch ohne Programmierkenntnisse machen. Habe den selber noch nicht benutzt, aber gibt einige YT tuts dazu wie man was machen kann. Ansonsten ev. etwas aus dem Unity Store ausprobieren? z.B. https://assetstore.unity.com/packages/vfx/shaders/fullscreen-camera-effects/mk-glow-free-28044
  14. Kannst du dem Objekt im Inspektor nicht das Material zuweisen?
  15. Habe eine Frage zum StateMachineBehaviour. Habe mit Google nichts gefunden, da ich nicht weiss wonach ich genau suchen soll. Ausgangslage ist wie folgt: Ich habe ein Script vom Typ StateMachineBehaviour. Ist recht simpel und regelt meine Spine Animationen. Es ist generell gehalten und lässt sich auf mehrer Charaktere anwenden, dies möchte ich auch so beibehalten. Nun möchte ich das sich das Script ein parameter aus dem Animator wo es drauf liegt holt, aber wie mache ich das? Ich möchte nicht jedes mal den Animator zuweisen müssen, und geht irgendwie sowieso nicht, da ich im StateMachineBehaviour kein GetComponent verwenden kann. Hoffe ist verständlich was ich meine. Edit: Ok bin schon ein Schritt weiter. Mit animator.GetFloat gehts irgendwie. Jetzt habe ich nur noch das Problem mit dem Update. Void Update funktioniert nicht und override public void OnStateEnter aktualisiert mir die Variable ja nicht.. hmm. Edit2: Ok, das heisst dann wohl OnStateUpdate. Scheint soweit zu funktionieren, manchmal postet man doch etwas vorschnell -closed-
  16. Möchte das Thema nochmals aufgreifen, da ich nur public void OnDeselect(BaseEventData data) und public void OnSelect(BaseEventData eventData) gefunden habe. Gibt es eine möglichkeit, wie z.B. bei den Colliders "OnTriggerStay" ? Nur eben auf die Buttons bezogen? Mein Problem liegt darin, dass ich beim schliessen des Inventars kein "OnDeselect" bekomme, was zu Problemen führt.
  17. bin zwar auch Anfänger aber würde jetzt mal sagen: if (Input.GetKeyDown(KeyCode.W)) { wheelSpeed = wheelSpeed + stepSpeed; anim.speed = wheelSpeed/4.5f; } else { if(wheelSpeed > 0) { wheelSpeed = wheelSpeed - stepSpeed; anim.speed = wheelSpeed/4.5f; } } oder alternativ eine dritte Abfrage: if ((!Input.GetKey (KeyCode.S)) && (!Input.GetKey(KeyCode.W))&&(wheelSpeed > 0)) { wheelSpeed = wheelSpeed - stepSpeed; anim.speed = wheelSpeed/4.5f; } Edit: keine Ahnung warum das jetzt so komisch formatiert wird, aber hoffe es ist leserlich.
  18. Ich möchte gerne das mein erster Button in Inventar beim aufrufen gehighlited wird. Habe es mit : var eventSystem = EventSystem.current; eventSystem.SetSelectedGameObject(FirstButton, new BaseEventData(eventSystem)); und mit FirstButton.Select(); versucht. Beides macht irgendwie das selbe. Beim ersten Spielstart und beim ersten mal aufrufen des Inventars funktionert alles einwandfrei. Nun aber wenn ich das Inventar schliesse und erneut aufrufe, bin ich zwar technisch an der richtigen Position, sprich ich kann normal navigieren und bin auch an der gewünschten Position und ich kann den Button auch mit Enter triggern, aber der Knopf wird nicht mehr gehighlightet. Ich bekome auch kein Feedback über den ISelectHandler. Irgendwie scheint Button.Select() nicht das gleiche zu machen, als wie wenn man den Button mit den Pfeiltasten anwählt. Was mich eben verwirrt ist, dass es beim ersten mal geht und danach nicht mehr. Edit: Oder gibt es eine andere Möglichkeit einen Default Button zu bestimmen? Der Grund liegt lediglich darin damit ich mit dem Gamepad/Pfeiltasten navigieren kann. Edit2: Hab das jetzt mal so gelöst: var eventSystem = EventSystem.current; var selectedButton = eventSystem.currentSelectedGameObject; if (selectedButton == null) { eventSystem.SetSelectedGameObject(FirstButton, new BaseEventData(eventSystem)); currentButton = FirstButton.GetComponent<Button>(); currentButton.OnSelect(null); } else { eventSystem.SetSelectedGameObject(selectedButton, new BaseEventData(eventSystem)); currentButton = selectedButton.GetComponent<Button>(); currentButton.OnSelect(null); } bin für Verbesserungen gerne offen.
  19. Hallo @Offisir Also Bücher kann ich dir jetzt keine empfehlen. Also nicht das ich dir Bücher generell nicht empfehle, sonder dass ich jetzt keins kenne/gelesen habe. Ich beziehe mein Wissen eher aus Youtube Tutorials und schaue wie die es machen, und versuche es soweit zu verstehen das ich es für meine Zwecke missbrauchen kann. Alternativ tuns auch Forenbeiträge. z.B. sowas hier:
×
×
  • Create New...