Jump to content
Unity Insider Forum

melindacbr

Newbie
  • Gesamte Inhalte

    2
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von melindacbr

  1. Hey, also ich wollte nach nem Ansatz fragen: In meinem Projekt hab ich verschiedene Objekte die alle 3 Animationen machen können (Idle, Walk, Jump). Ich will jetzt herausfinden, wie ich das hinbekomme dass ich ein Objekt mit der Maus anklicken kann und erst dann die Animationen möglich sind. (Die restlichen sollen so lange "Idlen"). Irgendwelche Ideen?
  2. Hallo, ich bin neu hier und auch der totale Noob in Unity. Ich komme grad einfach nicht weiter und vielleicht findet sich hier ja jemand, der mir helfen kann. Ich habe in meinem "Spiel" eine Katze und 3 Animationen (Idle, Walk, Jump). Die Aufgabe ist, die Animationen erst dann abzuspielen, wenn ich eine Taste drücke. (Jump(Leertaste), Walk(KeyUp und W) und sie soll rotieren, wenn ich ArrowRight/Left drücke.) Ich habe ein Child-Objekt in dem die Animationen sind: public var LegacyAnimation:Animation; var actionDisplayed: String; function setAction(_action:String){ if(_action == actionDisplayed){ } else{ switch(_action){ case "Walk": actionDisplayed = "Walk"; LegacyAnimation.CrossFade("Walk"); break; case "Jump": actionDisplayed = "Jump"; LegacyAnimation.CrossFade("Jump"); break; case "Idle": actionDisplayed = "Idle"; LegacyAnimation.CrossFade("Idle"); break; default: actionDisplayed = "Idle"; LegacyAnimation.CrossFade("Idle"); break; } // LegacyAnimation.CrossFade(actionDisplayed,0.1); } } function finishedAction(){ setAction("Idle"); } Ein übergeordnetes "Brain": private var child:Transform; private var childScript: FirstScript; public var random:float; public var state: String; public var rotSpeed: float =180.0; public var speed: float = 0.005; function Start (){ child = this.transform.Find("CatWalk"); childScript = child.GetComponent(FirstScript); changeAnimation("Idle"); } function Update() { if (childScript.actionDisplayed == "Jump"|| childScript.actionDisplayed == "Walk") { transform.Translate(0,0, speed);//*Time.deltaTime); } } function changeAnimation(_action: String) { childScript.setAction(_action); } function Move(x: float, y:float, z:float){ if (y < 0 && childScript.actionDisplayed != "Jump") { changeAnimation("Jump"); Debug.Log("Jumping"); } if (z < 1 && childScript.actionDisplayed != "Jump") { changeAnimation("Walk"); Debug.Log("Walking"); } else if(childScript.actionDisplayed != "Jump" && childScript.actionDisplayed != "Idle"){ transform.Rotate(0, rotSpeed*x*Time.deltaTime,0); Debug.Log("Rotate"); } und ein Script, das in der Kamera liegt und getAxis aufrufen soll. var CatChar : Transform; public var CatCharScript : Brain; function Start () { //CatChar = CatCharScript.transform; } function Update () { var Horiz:float=Input.GetAxis("Horizontal"); var Vertic:float=Input.GetAxis("Vertical"); var Jump:float=Input.GetAxis("Jump"); CatCharScript.Move(Horiz, Jump, Vertic); Debug.Log("InputAusgeführt!"); } Aufjedenfall passiert jetzt nicht wirklich was, wenn ich eine Taste drücke passiert garnichts. Was muss ich in meinem Brain in die Move methode rein schreiben, dass das auf die Tasten zugreifen kann? Ich wär euch echt mega dankbar für jede Hilfe! P.S. Im Anhang noch meine ganze unitydatei als zip. 5.2 (2).zip
×
×
  • Neu erstellen...