Version: 5.3 (switch to 5.4b)
IdiomaEnglish
  • C#
  • JS

Idioma de script

Selecciona tu lenguaje de programación favorito. Todos los fragmentos de código serán mostrados en este lenguaje.

RaycastHit.textureCoord2

Sugiere un cambio

¡Éxito!

Gracias por ayudarnos a mejorar la calidad de la documentación de Unity. A pesar de que no podemos aceptar todas las sugerencias, leemos cada cambio propuesto por nuestros usuarios y actualizaremos los que sean aplicables.

Cerrar

No se puedo enviar

Por alguna razón su cambio sugerido no pudo ser enviado. Por favor <a>intente nuevamente</a> en unos minutos. Gracias por tomarse un tiempo para ayudarnos a mejorar la calidad de la documentación de Unity.

Cerrar

Cancelar

Cambiar al Manual
public var textureCoord2: Vector2;
public Vector2 textureCoord2;

Descripción

The secondary uv texture coordinate at the impact point.

This can be used for 3D texture painting or drawing bullet marks. Devolverá Vector2.zero si el Collider no es un Mesh Collider. If the mesh contains no secondary uv set, the uv of the primary uv set will be returned.

// Attach this script to a camera and it will paint black pixels in 3D 
// on whatever the user clicks. Make sure the mesh you want to paint 
// on has a mesh collider attached.

var cam: Camera;

function Start() { cam = GetComponent.<Camera>(); }

function Update () { // Only when we press the mouse if (!Input.GetMouseButton (0)) return;

// Only if we hit something, do we continue var hit : RaycastHit; if (!Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), hit)) return;

// Just in case, also make sure the collider also has a renderer // material and texture. Also we should ignore primitive colliders. var rend: Renderer = hit.transform.GetComponent.<Renderer>(); var meshCollider = hit.collider as MeshCollider; if (rend == null || rend.sharedMaterial == null || rend.sharedMaterial.mainTexture == null || meshCollider == null) return; // Now draw a pixel where we hit the object var tex : Texture2D = rend.material.mainTexture as Texture2D; var pixelUV : Vector2 = hit.textureCoord2; pixelUV.x *= tex.width; pixelUV.y *= tex.height; tex.SetPixel(Mathf.FloorToInt(pixelUV.x), Mathf.FloorToInt(pixelUV.y), Color.black); tex.Apply(); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Camera cam; void Start() { cam = GetComponent<Camera>(); } void Update() { if (!Input.GetMouseButton(0)) return; RaycastHit hit; if (!Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), out hit)) return; Renderer rend = hit.transform.GetComponent<Renderer>(); MeshCollider meshCollider = hit.collider as MeshCollider; if (rend == null || rend.sharedMaterial == null || rend.sharedMaterial.mainTexture == null || meshCollider == null) return; Texture2D tex = rend.material.mainTexture as Texture2D; Vector2 pixelUV = hit.textureCoord2; pixelUV.x *= tex.width; pixelUV.y *= tex.height; tex.SetPixel(Mathf.FloorToInt(pixelUV.x), Mathf.FloorToInt(pixelUV.y), Color.black); tex.Apply(); } }