撞击点处的辅助 UV 纹理坐标。
这可以用于 3D 纹理绘制或绘制弹痕。 如果碰撞体不是网格碰撞器,则返回 Vector2.zero。 如果网格不包含任何辅助 UV 集,则返回主 UV 集的 UV。
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();
}
}