Jump to content
Unity Insider Forum

kevios105

Members
  • Content count

    15
  • Joined

  • Last visited

Community Reputation

0 Neutral

About kevios105

  • Rank
    Member

Recent Profile Visitors

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

  1. kevios105

    GameObject Control movment

    Eine Frage hätte ich allerdings noch... Und zwar wie kann ich das machen das wenn sich mein Object nicht bewegt es die "Idle" Animation abspielt und nur die "Walk" Animation abspielt sobald ich den Leftstick vom Gamepad bewege (also quasi das Objekt bewege)... Hier noch einmal das Script: float inputX = MonsterHorizontal.GetAxis (); float inputZ = MonsterVertical.GetAxis (); if (inputX!=0 || inputZ!=0) { Vector3 velocity = new Vector3(inputX, 0, inputZ); velocity = transform.TransformDirection (velocity); velocity *= monster.obj.speed; monster.obj.transform.rotation = Quaternion.LookRotation(velocity); monster.obj.SetVelocity (velocity); monster.obj.GetComponent<Animator> ().Play ("Walk"); } Meine Idle Animation heißt auch "Idle". Zur Zeit spielt er einfach nur konstant die Walk Animation ab... Wäre sehr dankbar wenn man mir hier noch einmal helfen könnte
  2. kevios105

    GameObject Control movment

    GEIL GEIL GEIL!!!! Es funktioniert du bist der BESTE vielen lieben DANK!!! Du weist gar nicht wie viele Stunden ich an diesem blöden ding hing ... YOU MAKE MY MONTH! DANKE DANKE DANKE
  3. kevios105

    GameObject Control movment

    Vielen Dank ich werde es gleich einmal ausprobieren sobald ich zuhause bin! monsterhorizontal ist quasi Input.GetAxis ... MonsterHorizontal ist quasi (keine Ahnung wie man es richtig erklärt) ein Platzhalter man kann im Inspector dann auswählen was MonsterHorizontal seien soll zB der leftcontrolstick auf dem gamepad oder so
  4. kevios105

    GameObject Control movment

    Ich nutze zur Zeit folgendes Script um ein Object zu bewegen: Vector3 velocity = new Vector3(MonsterHorizontal.GetAxis(), 0, MonsterVertical.GetAxis()); velocity = transform.TransformDirection (velocity); velocity *= monster.obj.speed; monster.obj.transform.rotation = Quaternion.LookRotation(velocity); monster.obj.SetVelocity (velocity); Alles funktioniert soweit ganz gut Leider schaut bzw richtet sich mein Object nach Links sobald ich den Leftstick Controller von meinem Gamepad los lasse. Hat jemand vllt eine Idee wie ich mein Problem lösen könnte? Ich hab mittlerweile schon alles möglich durchsucht und versucht aber komme leider nicht zum gewünschten Ergebnis =/... HILFE ^^
  5. kevios105

    Rotate & Movement

    Hallo ich habe ein Problem und komm einfach nicht weiter =/ ich habe ein Objekt das ich steuern möchte über den Joystick und zwar nur mit dem rechten ControllerStick... Das ist mein Script-Snippet bisher: Vector3 velocity = Vector3.zero; velocity = new Vector3 (Input.GetAxis ("RightAnalogHorizontal"), 0, Input.GetAxis ("RightAnalogVertical")); velocity = monster.obj.transform.InverseTransformDirection(velocity); velocity *= monster.obj.speed; monster.obj.SetVelocity(velocity); Vector3 velocity = Vector3.zero; velocity = new Vector3 (Input.GetAxis ("RightAnalogHorizontal"), 0, Input.GetAxis ("RightAnalogVertical")); velocity = monster.obj.transform.InverseTransformDirection(velocity); velocity *= monster.obj.speed; //monster.obj.transform.Rotate(Input.GetAxis ("RightAnalogHorizontal"), 0, Input.GetAxis ("RightAnalogVertical")); monster.obj.SetVelocity(velocity); Soweit funktioniert es auch, das Objekt bewegt sich in die entsprechende Richtung in der ich den rechten Analogstick vom Joystick bewege. Leider schaut mein Objekt immer nur in die selbe/gleiche Richtung und nicht nach z.b.: Links wenn ich links drücke... wie kann ich das lösen? ich bin hier wirklich am verzweifeln gerade und ich bin der Meinung das dies wirklich eigentlich pippifax ist und kein großes Problem sein sollte... Ich habe heute den ganzen Tag mich dran versucht und auch komplett Google schon auseinander genommen um irgendein richtigen Ansatz zu finden aber leider ohne Erfolg... Kann mir bitte jemand helfen? Lg
  6. kevios105

    Follower und zu gleich Attacker wenn Enemy in Nähe

    Erst einmal vielen Lieben DANK!!! nun versteh ich das ganze auch etwas besser wie es funktioniert! Ein Problem bleibt aber und zwar das der Begleiter am Anfang zum Spieler hin läuft, bewegt sich der Spieler aber weg bleibt der Begleiter an der Stelle und spielt nur die Animation "Walk" ab. Auch Routiert der Begleiter nicht zum Spieler sondern hält die Richtung bei. Könntest du mir bitte hierbei noch einmal helfen? Den Rest bekomme ich hoffentlich dann selbst noch alles hin... PS: bin wirklich fleißig am lernen von C# ... les mir im moment einfach alles durch was ich in die finger bekomme! ///EDIT ICH HABS!!!! DANKE DANKE
  7. kevios105

    Follower und zu gleich Attacker wenn Enemy in Nähe

    Also ich gebe echt mein bestes bin aber echt am verzweifeln ich benutze das Addon Invector und es klappt rein gar nichts >.< bitte kann mir jemand mal helfen ... Hier mein bisheriger Code: using UnityEngine; using System.Collections; using UnityStandardAssets.CrossPlatformInput; using System; using Invector.EventSystems; public class PetfollowerAttack1 : MonoBehaviour { public Transform Player; public float rotationSpeed = 3; //speed of turning public GameObject Follower; public float distance = 1.3f; public float followDistance = 1.4f; public bool isNotDead = true; bool stopped = false; public GameObject territory; GameObject Enemy; private Transform myTransform; private UnityEngine.AI.NavMeshAgent agent; //current transform data of this enemy void Awake() { myTransform = transform; //cache transform data for easy access/preformance } void Start() { agent = GetComponent<UnityEngine.AI.NavMeshAgent>(); Enemy = GameObject.FindGameObjectWithTag("Enemy"); } void Update () { if(isNotDead){ //rotate to look at the player var distance = Vector3.Distance(Player.position, myTransform.position) ; if (distance < followDistance) { stopped = true; GetComponent<Animator>().Play("Idle"); } else{ //move towards the player stopped = false; agent.SetDestination(Player.position); GetComponent<Animator>().Play("Walk"); myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(Player.position - myTransform.position), rotationSpeed*Time.deltaTime); } } } void OnTriggerEnter (Collider other) { var distance = Vector3.Distance(Enemy, myTransform.position) ; if (other.gameObject.tag == Enemy) { agent.SetDestination(Enemy); GetComponent<Animator>().Play("Walk"); myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(Enemy - myTransform.position), rotationSpeed*Time.deltaTime); } void ApplyDamage (){ vIDamageReceiver ISerializationCallbackReceiver = Follower.GetComponent<vIDamageReceiver>(); if (receiver != null) receiver.TakeDamage(45); } } void OnTriggerExit (Collider other) { if (other.gameObject.tag == Enemy) { agent.SetDestination(Player.position); GetComponent<Animator>().Play("Walk"); myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(Player.position - myTransform.position), rotationSpeed*Time.deltaTime); } } } Ich wäre bei jeder Hilfe euch soooo dermaßen Dankbar!!!
  8. Hallo ich hab folgende frage und zwar wie mache ich das am besten mit meinem vorhanden Script das wenn ein Enemy bzw. Gegner in die Nähe von meinem Follower kommt, ein Follower automatisch diesen Gegner angreift und sobald dieser Tot ist wieder meinem Player folgt oder aber auch wenn mein Player weg läuft (also eine gewisse Distanz zu Follower und Player entsteht), der Follower sich automatisch dazu entscheidet dem Player wieder zufolgen... Ich bin ziemlich neu in Unity und C# deshalb weiß ich ehrlich gesagt nicht einmal wo ich ansetzen könnte schon allein wegen dem abwiegen von Prioitäten von Player zu Gegner ... Dann hatte ich überlegt das ganze mit einem SphereCollider zu lösen, aber habe hier dann erfahren das wenn ich irgendwann mal mehrere Follower habe es ganz schön Laggen könnte usw und das dies keine gute Lösung wäre... Ist das richtig? Ich hoffe ich konnte mein Problem einigermaßen gut beschreiben und es wäre wirklich toll wenn mir da jemand helfen könnte, da ich schon in anderen Foren zuvor dieses Problem beschrieben hatte und keinerlei Hilfe bekommen habe Hier mein vorhandenes Script bisher: using UnityEngine; using System.Collections; using UnityStandardAssets.CrossPlatformInput; using System; public class Petfollower : MonoBehaviour { public Transform Player; public float rotationSpeed = 3; //speed of turning public GameObject Follower; public float distance = 1.3f; public float followDistance = 1.4f; public bool isNotDead = true; bool stopped = false; private Transform myTransform; private UnityEngine.AI.NavMeshAgent agent; //current transform data of this enemy void Awake() { myTransform = transform; //cache transform data for easy access/preformance } void Start() { agent = GetComponent<UnityEngine.AI.NavMeshAgent>(); } void Update () { if(isNotDead){ //rotate to look at the player var distance = Vector3.Distance(Player.position, myTransform.position) ; if (distance < followDistance) { stopped = true; GetComponent<Animator>().Play("Idle"); } else{ //move towards the player stopped = false; agent.SetDestination(Player.position); GetComponent<Animator>().Play("Walk"); myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(Player.position - myTransform.position), rotationSpeed*Time.deltaTime); } } } } Bitte helft mir das wäre so wundervoll und ich könnte meine Kopfschmerzen endlich beseitigen
  9. kevios105

    JS zu C++

    Okay hab es nun hinbekommen vielen lieben Dank noch einmal für den schnellen Support!!!
  10. kevios105

    JS zu C++

    Erst einmal vielen lieben dank ihr seit echt der Wahnsinn *-* Hab nun einen Problem und zwar: (40,4): error CS0103: The name `Froze' does not exist in the current context gibt es einen "Ersatz" für "Froze" ? Froze stand dafür das er stehen bleiben soll quasi...
  11. kevios105

    JS zu C++

    Ehrlich? vielen vielen lieben dank! Also ich finde das Forum hier wirklich klasse man bekommt so schnell eine Antwort!!!
  12. kevios105

    JS zu C++

    Hallo, ich hab da einmal eine Frage und zwar könnte mir jemand ein Script von JS zu C++ machen? Oder mir zumindest dabei helfen? Ich hab große Schwierigkeiten es in C++ umzuschreiben und wenn mir jemand dies machen könnte bzw. mir helfen könnte (ich nehme an das dies auch nicht all zu schwer wäre für ein geübten C++ Programmierer), wäre ich: 1. sehr sehr Dankbar und 2. könnte ich dann die Codes vergleichen und daraus lernen. Ich möchte hier nicht meine "Arbeit" auf andere ablagern also bitte nicht falsch verstehen. Das Script funktioniert wunderbar in JS aber damit ich es weiterverarbeiten kann mit Invector und den anderen Addons bzw. Assets wäre es schon sehr sinnvoll es in C++ zu haben. Ich bin Beginner aber gebe mein bestes alles irgendwie alleine hinzubekommen, da dies mir auch am meisten Spaß macht für ein Problem eine Lösung zu finden und ich habe mir mit dem JS Script viel mühe gegeben nur komme ich jetzt nicht mehr weiter da ich es in C++ bräuchte wie bereits erwähnt. var Player : Transform; var rotationSpeed = 3; //speed of turning var myTransform : Transform; var ragdoll : GameObject; var agent : UnityEngine.AI.NavMeshAgent;//current transform data of this enemy var isNotDead : boolean = true; var distance : float = 3.0f; var followDistance : float = 10f; function Awake() { myTransform = transform; //cache transform data for easy access/preformance } function Start() { agent = GetComponent.<UnityEngine.AI.NavMeshAgent>(); } function Update () { if(isNotDead){ //rotate to look at the player var distance = Vector3.Distance(Player.position, myTransform.position) ; if (distance < followDistance) { Froze = true; GetComponent.<Animator>().Play("Idle"); } else{ //move towards the player Froze = false; agent.SetDestination(Player.position); GetComponent.<Animator>().Play("Walk"); myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(Player.position - myTransform.position), rotationSpeed*Time.deltaTime); } } } Ich kann es nachvollziehen wenn es niemand dem annehmen will ... =/
  13. kevios105

    Feste Distanz zum Player einstellen

    Konnte das ganze nun Lösung mit Froze = true; aber vielen Dank für deine schnelle Hilfe!
  14. kevios105

    Feste Distanz zum Player einstellen

    Vielen Dank erst einmal für die schnell Antwort! Ich habe es natürlich gleich ausprobiert leider bekomme ich nun diesen Fehler in der Console angezeigt: Assets/Petfollow.js(39,17): BCE0005: Unknown identifier: 'NavMeshAgent'. Ich schätze mal das ich NavMeshAgent erst definieren muss? Wenn ja wie? // Edit habe das nun so versucht UnityEngine.AI.NavMeshAgent anstatt das NavMeshAgent und nun bekomme ich zwar keinen Fehler direkt angezeigt in der Console aber das "Pet" folgt mir nun auch nicht mehr egal was für eine Distanzgröße ich eingebe, wenn ich ihm aber dann zu nahe komme, bekomme ich folgenden Fehler in der Console angezeigt MissingFieldException: UnityEngine.AI.NavMeshAgent.isStopped Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.FindExtension (IEnumerable`1 candidates) Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.Create (SetOrGet gos) Boo.Lang.Runtime.DynamicDispatching.PropertyDispatcherFactory.CreateSetter () Boo.Lang.Runtime.RuntimeServices.DoCreatePropSetDispatcher (System.Object target, System.Type type, System.String name, System.Object value) Boo.Lang.Runtime.RuntimeServices.CreatePropSetDispatcher (System.Object target, System.String name, System.Object value) Boo.Lang.Runtime.RuntimeServices+<SetProperty>c__AnonStorey19.<>m__F () Boo.Lang.Runtime.DynamicDispatching.DispatcherCache.Get (Boo.Lang.Runtime.DynamicDispatching.DispatcherKey key, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory) Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory) Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory) Boo.Lang.Runtime.RuntimeServices.SetProperty (System.Object target, System.String name, System.Object value) Petfollow.Update () (at Assets/Petfollow.js:39) Bin da jetzt total überfordert um ehrlich zu sein mit dem Fehler o.O
  15. kevios105

    Feste Distanz zum Player einstellen

    Hallo erst einmal, ich bin ziemlich neu in Unity und habe hier ein Script wo ich einfach nicht eine feste Distanz zwischen Follower und Player hinbekomme... Das Script soll folgendes einfach machen: Player folgen und eine gewisse Distanz zum Spieler immer einhalten und wenn der Player sich nicht bewegt soll der "Follower" automatisch in die "Idle" Animation gehen und nicht weiter laufen bis der Player sich wieder bewegt... Ganz am ende soll es ein "Follower Pet" sein bzw. ein Begleiter der aber auch Gegner die sich in einer gewissen Distanz befinden automatisch attackieren. Aber soweit komme ich gerade noch nicht wegen eben dieser Distanz... Ich bin wirklich sehr neu in Unity und in C++ sowie JS aber ich gebe mein bestes aber ich bin echt am verzweifeln >.< Wenn mir einer bitte helfen könnte wäre ich sehr dankbar und natürlich würde ich mich auch freuen wenn jemand das mit dem Automatischen Attackieren wenn ein Gegner in Range ist auch mir zeigen könnte aber das ist kein "muss" ... ich werde es auch selbst irgendwie dann hinbekommen (hoffe ich doch ^^)... Vielen dank für jede Hilfe! hier das Script was ich bisher habe: var Player : Transform; var moveSpeed = 3; //move speed var rotationSpeed = 3; //speed of turning var myTransform : Transform; var ragdoll : GameObject; var agent : UnityEngine.AI.NavMeshAgent;//current transform data of this enemy var isNotDead : boolean = true; var health : float = 100; var distance : float = 3.0f; function Awake() { myTransform = transform; //cache transform data for easy access/preformance } function Start() { agent = GetComponent.<UnityEngine.AI.NavMeshAgent>(); } function Update () { if(health < 1){ isNotDead = false; Destroy(gameObject); Instantiate (ragdoll, myTransform.position, myTransform.rotation); } if(isNotDead){ //rotate to look at the player var distance = Vector3.Distance(Player.position, myTransform.position) ; if (distance < 1.0f) { GetComponent.<Animator>().Play("Idle"); } else{ //move towards the player agent.SetDestination(Player.position); GetComponent.<Animator>().Play("Walk"); myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(Player.position - myTransform.position), rotationSpeed*Time.deltaTime); } } } function OnTriggerEnter(collider : Collider) { if(collider.tag == "Player") { GetComponent.<Animator>().Play("sound"); GetComponent.<AudioSource>().Play(); yield WaitForSeconds (2); Player = GameObject.FindWithTag("Player").transform; } } function ApplyDamage(dmg : float){ health -= 20; }
×