Jump to content
Unity Insider Forum

Simsala Animationen

Members
  • Gesamte Inhalte

    19
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Simsala Animationen

  1. Ich habe versucht ein Script zu schreiben das dafür sorgt das wenn ich mit der Maus darüber fahre mir angibt welche Farbe die Textur an der Stelle hat. Um erst einmal herauszufinden wie das geht habe ich versucht in der Unit Documentation etwas zu finden. Das erste was mir vorgeschlagen wurde war. Texture2D.GetPixel // Sets the y coordinate of the transform to follow the heightmap using UnityEngine; using System.Collections;public class ExampleClass : MonoBehaviour { public Texture2D heightmap; public Vector3 size = new Vector3(100, 10, 100);void Update() { int x = Mathf.FloorToInt(transform.position.x / size.x * heightmap.width); int z = Mathf.FloorToInt(transform.position.z / size.z * heightmap.height); Vector3 pos = transform.position; pos.y = heightmap.GetPixel(x, z).grayscale * size.y; transform.position = pos; } } so wie ich die Beschreibung verstanden habe gibt das die Pixelfarbe zurück. Doch das einzige was passiert ist das ein Object damit die Position verändert. Dann stand noch etwas da das man die Textur auf TextureImporter.isReadable stellen muss. Doch wo finde ich das? Nach einiger Zeit bin ich dann soweit gekommen das wenn ein Strahl ein Object mit Textur trifft und er den Tag "Player" hat dann über public die Farbe rechts angezeigt wird. Doch selbst wenn die Farbe links blau ist und rechts grün wird mir immer nur blau angezeigt. Bzw das was ich in die publicspalte reingezogen habe. public Texture2D my_texture; public float x; public float y; public Color color; RaycastHit hit; Vector3 MousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 9); Vector3 ObjektPosition = Camera.main.ScreenToWorldPoint(MousePosition); x = (ObjektPosition.x); y = (ObjektPosition.y); x = (Input.mousePosition.x); y = (Input.mousePosition.y); Debug.DrawRay(ObjektPosition, transform.forward*500 , Color.green); if (Physics.Raycast(ObjektPosition, transform.forward*500, out hit, 900)) { if (hit.collider.tag == "Player") { Color pixel_colour = my_texture.GetPixel((Mathf.RoundToInt(x)), (Mathf.RoundToInt(y))); color = pixel_colour; print(pixel_colour); } } } } Gibt es da noch eine Möglichkeit die einzelnen Pixel einer Textur abzufragen?
×
×
  • Neu erstellen...