Jump to content
Unity Insider Forum

3ncrypt0

Members
  • Content count

    164
  • Joined

  • Last visited

  • Days Won

    2

3ncrypt0 last won the day on September 16 2016

3ncrypt0 had the most liked content!

Community Reputation

7 Neutral

About 3ncrypt0

  • Rank
    Advanced Member

Recent Profile Visitors

1,916 profile views
  1. 3ncrypt0

    Terrain Tree chopping - Collider baked?

    Servus, @Tarantel Aber haben TerrainTrees nicht auch noch einen Performance Vorteil? Wenn ich es aussuchen könnte, würde ich auch lieber die Prefabs setzen. Vor allem hat man dort deutlich mehr Möglichkeiten. Seit vorhin stört es mich, dass wenn ich ein Terrain Tree durch ein Prefab ersetzen will wenn ich diesen fällen möchte, dass die Scene für 1-2 Sekunden einfriert, da er durch alle Terrain Trees in einer Schleife läuft um den passenden rauszusuchen. Interessanterweise hat er das vorher nicht gemacht
  2. 3ncrypt0

    Terrain Tree chopping - Collider baked?

    Hey, ich habe hier eine Lösung gefunden. Die Terrain Tree Collider werden tatsächlich gebaked, weshalb diese auch nach dem entfernen einen Terrain Trees bestehen bleiben. Ist natürlich etwas uncool wenn man durch die Map rennt und auf einmal gegen einen eigentlich nicht mehr sichtbaren Baum knallt. Einen Lösungsvorschlag habe ich hier gefunden: https://answers.unity.com/questions/685405/mass-place-trees-tagging.html Die Terrain Tree werden ohne Terrain Tree Collider gesetzt. Ein Capsule Objekt mit einem Collider wird immer an die nächste Position des nächsten Terrain Trees gesetzt. Nach ein paar Anpassungen funktioniert es sehr gut. VG
  3. Guten Morgen, ich verwende Terrain Trees und möchte nun auch die Möglichkeit haben, Bäume zu fällen. Dazu gehe ich wie folgt vor: Via Raycast ermittel ich erst den Baum, welcher gefällt werden soll. Dann "entferne" ich den Baum vom Terrain und setze an der selben stelle einen Baum via Prefab hin um mit diesem zu interagieren. foreach (TreeInstance tree in terrain.terrainData.treeInstances) { Vector3 newTreePos = Vector3.Scale(tree.position, terrain.terrainData.size) + terrain.transform.position; float newTreeDist = Vector3.Distance(newTreePos, hit.point); if (newTreeDist < treeDist) { treeId = tree.prototypeIndex; treeDist = newTreeDist; treePos = newTreePos; var fallingTree = (GameObject) Instantiate(Terrain.activeTerrain.terrainData.treePrototypes[tree.prototypeIndex].prefab, Vector3.Scale(tree.position, terrain.terrainData.size) + Terrain.activeTerrain.transform.position, Quaternion.identity); fallingTree.transform.localScale = new Vector3(tree.widthScale * fallingTree.transform.localScale.x, tree.heightScale * fallingTree.transform.localScale.y, tree.widthScale * fallingTree.transform.localScale.z); //GameObject dead = Instantiate(Terrain.activeTerrain.terrainData.treePrototypes[tree.prototypeIndex].prefab, Vector3.Scale(tree.position, terrain.terrainData.size) + Terrain.activeTerrain.transform.position, Quaternion.Euler(0, tree.rotation, 0)) as GameObject; //fallingTree.transform.localScale = new Vector3(tree.widthScale, tree.heightScale, tree.widthScale); } else { instances.Add(tree); } } terrain.terrainData.treeInstances = (TreeInstance[])instances.ToArray(typeof(TreeInstance)); Auf dem Baum den ich setze liegt ein Script, welches choppen handeln soll, also wieviel Health der Baum noch hat und wann er dann schließlich fällt. Das Ganze funktioniert auch ganz gut, bis auf die Tatsache, dass vom Terrain Tree der Collider bestehen bleibt. Bedeutet also, dass wenn ich via Raycast auf den Baum einprügel ich natürlich auch abfrage, auf was ich einprügel. Nun ist dort ja noch der Collider vom Terrain Tree. Dann erhalte ich sehr häufig als GameObject das Terrain zurück public void ChopTheTree() { Debug.Log("Chop it!"); RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 2f)) { Vector3 lookRot = new Vector3(hit.point.x, transform.position.y, hit.point.z); transform.LookAt(lookRot); Debug.Log(hit.transform.gameObject.name); if(hit.transform.gameObject.GetComponent<TreeChop>() != null) hit.transform.gameObject.GetComponent<TreeChop>().TreeChopping(); } } Werden die Collider der Terrain Trees irgendwo gebaked? Wenn ich mal den Baum wirklich erwische und ich ihn zu Fall bringe und dieser dann auch destroyed wird, dann laufe ich trotzdem noch gegen den Collider vom Terrain Tree. VG, Jochen
  4. 3ncrypt0

    Inventory Pro - AI

    Servus alle zusammen, ich sitze derzeit an einem neuen Spiel, in dem auch Inventory Pro zum Einsatz kommt. Da es in erster Linie um einen Single Player dreht, benötige ich natürlich auch eine AI. Und wie es numal so ist, schaue ich um Zeit und Ressourcen zu sparen erst einmal im Asset Store nach. Dort habe ich einige, sehenswerte AssetPacks bzgl. AI gefunden. Nun möchte ich aber auch, dass die Enemies auch mit Inventory Pro arbeiten. Die AI sollte dazu also kompatibel sein - kennt jemand rein zufällig ein solches AssetPack? Es ist ein FPS/Survival Spiel. Ich finde die Lösung von manchen Assets cool, wo ein visueller Editor zur Verfügung steht. Es sollen vor allem verschiedene Enemies erstellt werden - Einfach Bauern, Wachen, Tiere etc. AI's sollen natürlich auch untereinander agieren(z.B. kämpfen) können. Hier mal ein paar Bsp.(sollten Links nicht erwünscht sein, bitte Bescheid geben oder löschen): https://assetstore.unity.com/packages/tools/ai/fsm-ai-template-beta-123618 Leider Beta - Sieht aber sehr interessant aus. Bin mir aber nicht sicher, ob es sich so einfach implementieren lässt und mit Inventory Pro zusammen arbeitet. https://assetstore.unity.com/packages/tools/ai/eliot-ai-framework-128119 Cooles Beispiel Video - scheinbar sehr mächtig. Verwendet eigenes Inventory -> nicht so cool. https://assetstore.unity.com/packages/tools/ai/intense-shooter-ai-63221 Ziemlich beeindruckendes Video - Scheint aber eine reine Shooter AI zu sein. Kenn jemand vielleicht noch passende? Oder seid ihr der Meinung, dass man lieber eine eigene AI State Machine schreiben sollte - nimmt natürlich eine Menge Zeit in Anspruch. VG, Jochen
  5. 3ncrypt0

    Nicht scharfe Tool Texte

    Ich habe das selbe Problem - aber nicht nur in Unity. Teilweise komplett nicht lesbar. An der Auflösung würde es auch nicht liegen, eher am Grakatreiber. Dieser scheint zeitweise Probleme zu haben, den Text sauber rauszurendern (NVidia). Habe ich auch erst seit ein paar Tagen - Super nervig!
  6. Problem konnte gelöst werden - es lag vermutlich wirklich an dem ZIP. Auf einem anderen Rechner funktionierte es, das entpackte auf einen USB Stick gezogen und auf die beiden Testrechner gespielt und siehe da, es läuft.
  7. Ja, ich Zip die und spiele die auf einen FTP und der Kunde lädt sie von dort runter.
  8. madkeystudios.network.mkNetworkServer ist ein Script von mir: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Networking; namespace madkeystudios.network { public class mkNetworkServer : NetworkManager { NetworkServer server; public bool isServer = false; public Text serverStatus; public Text clientStatus; private void Start() { if (!isServer) { StartCoroutine(ConnectClientToServer()); } else { StartCoroutine(ClientStatus()); StartCoroutine(ServerStatus()); } } IEnumerator ClientStatus() { while (true) { clientStatus.text = NetworkServer.connections.Count.ToString() + " Clients connected"; yield return new WaitForSeconds(1f); } } IEnumerator ServerStatus() { while (true) { if (!NetworkServer.active) { serverStatus.text = "Server down"; } else { serverStatus.text = "Server running"; } yield return new WaitForSeconds(2f); } } public void ServerConnect() { if (!NetworkServer.active) { StartServer(); } } public void ServerDisconnect() { if (NetworkServer.active) { StopServer(); } } public void ClientConnect() { if (!NetworkClient.active) { StartClient(); } } IEnumerator ConnectClientToServer() { Debug.Log("Versuche zu verbinden"); if (!NetworkClient.active) { StartClient(); } yield return new WaitForSeconds(2f); } public void ClientDisconnect() { if (NetworkClient.active) { StopClient(); } } public override void OnStartServer() { Debug.Log("Start Server"); base.OnStartServer(); } public override void OnStopServer() { Debug.Log("Stop Server"); base.OnStopServer(); } public override void OnClientConnect(NetworkConnection conn) { Debug.Log("Client connected"); base.OnClientConnect(conn); } } } Und Countdown ist ein NetworkBehaviour Script, in dem ich Variablen zu den Clients synchronisiere. Was mir auffällt ist, das das mkNetworkServer in einem eigenen Namespace liegt - aber daran dürfte es ja nicht liegen.
  9. Ja - Sollen 64-bit Rechner sein. Ich bin aber gerade dabei ein 32-bit Build zu erstellen. Schaden kann es ja nicht.
  10. Das ist ein x86_64 Build. Ich nutze kein XInput - Diese Meldung kommt soweit ich weiß immer dann, wenn DirectX nicht installiert ist. In meiner VMWare steht das Gleiche bzgl. Input - Kann die Anwendung dort aber problemlos ausführen.
  11. Guten Morgen, anbei einmal das Logfile von einem der beiden Rechnern: Initialize engine version: 2018.2.0f1 (51acc5a75f1e) GfxDevice: creating device client; threaded=1 Direct3D: Version: Direct3D 11.0 [level 11.1] Renderer: NVIDIA GeForce GTX 1050 Ti (ID=0x1c82) Vendor: VRAM: 4018 MB Driver: 24.21.13.9793 Begin MonoManager ReloadAssembly - Completed reload, in 0.052 seconds <RI> Initializing input. XInput1_3.dll not found. Trying XInput9_1_0.dll instead... <RI> Input initialized. Initialize engine version: 2018.2.0f1 (51acc5a75f1e) GfxDevice: creating device client; threaded=1 Direct3D: Version: Direct3D 11.0 [level 11.1] Renderer: NVIDIA GeForce GTX 1050 Ti (ID=0x1c82) Vendor: VRAM: 4018 MB Driver: 24.21.13.9793 Begin MonoManager ReloadAssembly - Completed reload, in 0.053 seconds <RI> Initializing input. XInput1_3.dll not found. Trying XInput9_1_0.dll instead... <RI> Input initialized. <RI> Initialized touch support. The referenced script (madkeystudios.network.mkNetworkServer) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (LoadRoom) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (Countdown) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (NetworkMap) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (mkNetworkReset) on this Behaviour is missing! (Filename: Line: 1575) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably Countdown?) has a different serialization layout when loading. (Read 32 bytes but expected 56 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'SceneLoader') is missing! (Filename: Line: 1775) The referenced script on this Behaviour (Game Object 'NetworkManager') is missing! (Filename: Line: 1775) A script behaviour (probably madkeystudios.network.mkNetworkServer?) has a different serialization layout when loading. (Read 32 bytes but expected 408 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably NetworkMap?) has a different serialization layout when loading. (Read 32 bytes but expected 44 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably mkNetworkReset?) has a different serialization layout when loading. (Read 32 bytes but expected 36 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) UnloadTime: 0.388266 ms Setting up 4 worker threads for Enlighten. Thread -> id: c4b8 -> priority: 1 Thread -> id: 6bd4 -> priority: 1 Thread -> id: 6a68 -> priority: 1 Thread -> id: b318 -> priority: 1 Initialize engine version: 2018.2.0f1 (51acc5a75f1e) GfxDevice: creating device client; threaded=1 Direct3D: Version: Direct3D 11.0 [level 11.1] Renderer: NVIDIA GeForce GTX 1050 Ti (ID=0x1c82) Vendor: VRAM: 4018 MB Driver: 24.21.13.9793 Begin MonoManager ReloadAssembly - Completed reload, in 0.051 seconds <RI> Initializing input. XInput1_3.dll not found. Trying XInput9_1_0.dll instead... <RI> Input initialized. <RI> Initialized touch support. The referenced script (madkeystudios.network.mkNetworkServer) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (LoadRoom) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (Countdown) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (NetworkMap) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (mkNetworkReset) on this Behaviour is missing! (Filename: Line: 1575) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably Countdown?) has a different serialization layout when loading. (Read 32 bytes but expected 56 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'SceneLoader') is missing! (Filename: Line: 1775) The referenced script on this Behaviour (Game Object 'NetworkManager') is missing! (Filename: Line: 1775) A script behaviour (probably madkeystudios.network.mkNetworkServer?) has a different serialization layout when loading. (Read 32 bytes but expected 408 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably NetworkMap?) has a different serialization layout when loading. (Read 32 bytes but expected 44 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably mkNetworkReset?) has a different serialization layout when loading. (Read 32 bytes but expected 36 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) UnloadTime: 0.630043 ms Setting up 4 worker threads for Enlighten. Thread -> id: cd64 -> priority: 1 Thread -> id: b0dc -> priority: 1 Thread -> id: 4b04 -> priority: 1 Thread -> id: 19fc -> priority: 1 <RI> Initialized touch support. The referenced script (madkeystudios.network.mkNetworkServer) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (LoadRoom) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (Countdown) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (NetworkMap) on this Behaviour is missing! (Filename: Line: 1575) The referenced script (mkNetworkReset) on this Behaviour is missing! (Filename: Line: 1575) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably Countdown?) has a different serialization layout when loading. (Read 32 bytes but expected 56 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'SceneLoader') is missing! (Filename: Line: 1775) The referenced script on this Behaviour (Game Object 'NetworkManager') is missing! (Filename: Line: 1775) A script behaviour (probably madkeystudios.network.mkNetworkServer?) has a different serialization layout when loading. (Read 32 bytes but expected 408 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably NetworkMap?) has a different serialization layout when loading. (Read 32 bytes but expected 44 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) The referenced script on this Behaviour (Game Object 'Countdown') is missing! (Filename: Line: 1775) A script behaviour (probably mkNetworkReset?) has a different serialization layout when loading. (Read 32 bytes but expected 36 bytes) Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts? (Filename: Line: 1957) UnloadTime: 0.433777 ms Setting up 4 worker threads for Enlighten. Thread -> id: 2304 -> priority: 1 Thread -> id: 3eec -> priority: 1 Thread -> id: 3f88 -> priority: 1 Thread -> id: cf9c -> priority: 1 Und hier einmal das Log von meinem Rechner, wo es problemlos läuft: Initialize engine version: 2018.2.0f1 (51acc5a75f1e) GfxDevice: creating device client; threaded=1 Direct3D: Version: Direct3D 11.0 [level 11.1] Renderer: NVIDIA GeForce GTX 970 (ID=0x13c2) Vendor: VRAM: 4043 MB Driver: 24.21.13.9907 Begin MonoManager ReloadAssembly - Completed reload, in 0.069 seconds <RI> Initializing input. <RI> Input initialized. <RI> Initialized touch support. UnloadTime: 0.473139 ms Setting up 4 worker threads for Enlighten. Thread -> id: c564 -> priority: 1 Thread -> id: 2460 -> priority: 1 Thread -> id: 5490 -> priority: 1 Thread -> id: 46c4 -> priority: 1 Unloading 5 Unused Serialized files (Serialized files now loaded: 0) UnloadTime: 4.759231 ms Unloading 7 unused Assets to reduce memory usage. Loaded Objects now: 1062. Total: 0.820184 ms (FindLiveObjects: 0.407252 ms CreateObjectMapping: 0.013631 ms MarkObjects: 0.379420 ms DeleteObjects: 0.019595 ms) Versuche zu verbinden (Filename: C:\buildslave\unity\build\Runtime/Export/Debug.bindings.h Line: 43) Der scheint keines der Scripte zu laden/finden. Was zum Geier? Und nein, ich verwende kein: #ifdef UNITY_EDITOR
  12. In die Logfiles konnte ich noch nicht gucken, sofern welche bestehen, denn interessanter Weise konnte ich keine Logfiles in meiner Umgebung finden - Keine Ahnung ob sich dies in der neuen Unity2018 geändert hat. Ich werde mich morgen wohl einmal via TeamViewer auf den Rechner verbinden und schauen, ob ich etwas finde. Hatte gerade eine neue Win10Pro in einer VMWare installiert und dort einmal die Anwendung gestartet und sie funktioniert problemlos. Keine Ahnung was da schief läuft...
  13. Nabend zusammen, ich habe die Tage eine kleine Windows Anwendung mit Unity2018.2.0f1 erstellt. In der ersten Scene befindet sich ein UI in dem verschiedene Buttons sind. Mit einem Button gelangt man z.B. in eine weitere Scene. Bei mir und bei einem Kollegen auf dem Rechnern funktioniert das Windows Build ganz normal. Auf zwei Rechnern des Kunden, welche komplett frisch aufgesetzt wurden (Windows10Pro) passiert allerdings nichts. Ich habe nun auch mal ein Development Build rübergeschickt um zu schauen, wo es hakt, aber es wird nichts in der Console ausgegeben. Ich bin nun etwas verwundert. Ich dachte auch schon an eine falsche Auflösung - allerdings funktioniert es bei den beiden Rechnern auf keiner Auflösung, also kann es daran nicht liegen, zumal die Buttons auf Klick auch den Zustand ändern. Die Anwendung ist eine Netzwerk Anwendung - müssen noch irgendwelche Pakete auf den Rechnern installiert werden? Ich bin gerade etwas ratlos.... Danke und VG
  14. 3ncrypt0

    Robot Kyle Footprints

    Servus, ich möchte, dass mein Player Fußspuren hinterlässt, allerdings habe ich dabei Probleme bzgl. Triggern und Animation. Vorab mein Script: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Footstep : MonoBehaviour { public GameObject footstep; public Transform leftFootstepLocation; public bool active = true; private void Start() { this.leftFootstepLocation = this.transform; } void LeftFootstep() { RaycastHit hit; Debug.Log(this.leftFootstepLocation.position); Instantiate(this.footstep, new Vector3(this.leftFootstepLocation.position.x, 0.02f, this.leftFootstepLocation.position.z), Quaternion.Euler(90, this.leftFootstepLocation.eulerAngles.y, 0)); } private void OnTriggerExit(Collider other) { if(other.gameObject.tag == "Ground") { if (this.active) { LeftFootstep(); this.active = false; } } } private void OnTriggerEnter(Collider other) { if(other.gameObject.tag == "Ground") { this.active = true; } } } Und ein Screenshot: Wie man dem Script und dem Screenshot entnehmen kann, war mein Plan ein empty GameObject mit einem BoxCollider zu verwenden, bei dem IsTrigger aktiviert ist. Verlässt der Fuss den Boden, soll an der Position ein Fußabdruck erstellt werden. Ich verwende eine Animation von Mixamo. Das Problem ist nun, dass manchmal das Triggern des Fußes doppelt ausgelöst wird und manchmal überhaupt nicht. Wenn ich renne, passiert z.B. nichts. In diesem Tutorial z.B. verwendet er zum Auslösen der Funktionen die Animationen. Also wenn der Fuß laut Animation den Boden verlässt, setzt er ein Sprite. Gibt es dort keine einfachere Lösung? Ich wüsste gerade nicht, wie ich das über meine Animation steuern sollte. VG Jochen
  15. Hi, konnte das Problem lösen. Mein Player ist nun ein Rigidbody. Ich musste in dem Fall Drag und AngularDrag auf 1 setzen und weiterhin die Rotation am Rigidbody auf X und Z sperren. Hier ein Auszug aus meiner PlayerController: if (reachedEndOfPath) return; lookAttarget = new Vector3(path.vectorPath[currentWaypoint].x - transform.position.x, transform.position.y, path.vectorPath[currentWaypoint].z - transform.position.z); playerRot = Quaternion.LookRotation(lookAttarget); transform.rotation = Quaternion.Slerp(transform.rotation, playerRot, rootSpeed * Time.deltaTime); transform.position = Vector3.MoveTowards(transform.position, new Vector3(path.vectorPath[currentWaypoint].x, 1, path.vectorPath[currentWaypoint].z), speed * Time.deltaTime);
×