2017-06-27 3 views
0

Ich bin völlig neu in der Einheit, so brauchen Sie Hilfe der Menschen. Ich habe eine Umgebung, die grasige Textur für die erste Ebene hat, die perfekt ist, Jetzt möchte ich geben Schnee Area Look & fühlen, meine ganze Umgebung mit Schnee Textur für die zweite Ebene und in der dritten Ebene, eine Wüste zu meiner Umwelt durch die Verwendung von Wüste Textur auf der Umwelt.Seperate/verschiedene Textur für eine Ebene für die gesamte Umgebung als andere Ebene

Schwierigkeiten, denen ich gegenüberstehe, ist die Umgebung hat Hunderte von Spielobjekten mit Mesh-Renderer. Es ist fast unmöglich für mich, auf die hundert von migrenderer zuzugreifen und die Textur mithilfe von Skript zuzuweisen.

Kann jemand die einfache und beste Lösung für dieses Szenario geben.

Antwort

0

Oft ist es üblich, verschiedene Prefabs mit unterschiedlichen Materialien für die zu erstellende Szene zu verwenden. Aber wenn der einzige Unterschied die Textur ist, gibt es eine ziemlich einfache Lösung:

MeshRenderer teilen Materialien, was bedeutet, dass eine Änderung der Textur des Materials dazu führen sollte, dass alle MeshRenderer, die dieses Material verwenden, aktualisieren.

Die einfachste Möglichkeit, diese Textur (außerhalb des Editors) zu ändern, wäre ein Skript für jede Szene, das das Material so ändert, dass es die gewünschte Textur hat. Etwas wie folgen aus:

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class TextureSetter : MonoBehaviour 
{ 
    public Material materialToChange; 
    public Texture targetTexture; 

    private void Awake() 
    { 
     materialToChange.SetTexture("_MainTex", targetTexture); 
    } 
} 

Wenn Sie Ihr Spiel ausführen, sollten Sie alle Objekte mit dem Material sehen Sie setzen Update:

Go aus diesem: enter image description here

Um dies zu, wenn Sie führen das Spiel: enter image description here

+0

es ist wirklich sehr hilfreich Danke :) –

0

Vielen Dank @Thomas Bartlett zu beantworten. Ihre Antwort zeigte mir, wie ich mein Problem lösen könnte. in Ihrem Fall wäre es ein bisschen langwierig, ich denke, zu jedem Spielobjekt mit meshrenderer gehen und Zugriff auf das Material und Textur ändern. Ihre ist ein einfacher Weg, finde ich.

Verwenden Sie das Plugin "Simple Mesh Combiner", es kombiniert alle Materialien, die auf allen meshrenderers in der Umgebung auf einzelnen leeren Spielobjekt verwendet werden, wie im angehängten Bild gezeigt.

Nachdem Sie alle Materialien für ein einzelnes Spielobjekt erhalten haben, hängen Sie das Skript an dieses einzelne Spielobjekt an und greifen Sie auf die Materialien zu, wie in @Thomas Bartlett-Skript und Enjoy gezeigt. :) Image

Link-Plugin Mesh-Kombinierer Get unten

Link

gegeben wird, könnte ihr sein eine weitere Möglichkeit, den Atlas für eine Art von Texturen zu machen ist (Lets grasigen Blick sagen und Umgebung fühlen) und ein anderer atlas für Schnee-Look und Umwelt fühlt und nur den atlas ersetzen, wie Ebene oder requirments nach. (aber ich habe diese Lösung angewandt wird, ich hoffe, es wird auch funktionieren)

Thanks :)

Verwandte Themen