Синтаксис:
Используется javascript
//Thanks to Bunny83 from Germany for help
var transf : Transform;
class hitmat1 {
var enabled : boolean = true;
var texturehit : String;
@HideInInspector
var tranglind : int;
@HideInInspector
var Layer : LayerMask = 1;
}
var hitmat1 : hitmat1 = hitmat1();
function Update() {
var hit : RaycastHit;
if (Physics.Raycast(transf.position, transf.TransformDirection(Vector3.forward), hit, 2, hitmat1.Layer)) {
ind = hit.triangleIndex;
if (hitmat1.tranglind != ind && hitmat1.enabled) {
hitmat1.tranglind = ind;
var go1 = hit.collider.gameObject;
var mee = go1.GetComponent(MeshFilter).mesh;
var mre = go1.GetComponent(MeshRenderer);
if (mee && mre) {
if (go1.renderer.materials.Length > 1) {
var triangles = mee.triangles;
for (var submesh = 0; submesh < mee.subMeshCount; submesh++) {
var indices = mee.GetTriangles(submesh);
for (var i = 0; i < indices.Length; i += 3) {
if (indices[i] == triangles[ind * 3] && indices[i + 1] == triangles[ind * 3 + 1] && indices[i + 2] == triangles[ind * 3 + 2]) {
hitmat1.texturehit = mre.materials[submesh].mainTexture.name.ToLower();
i = indices.Length;
submesh = mee.subMeshCount;
}else{
hitmat1.texturehit = "Null";
}
}
}
}else{
mtexx = go1.renderer.material.mainTexture;
if (mtexx)
hitmat1.texturehit = mtexx.name.ToLower();
else
hitmat1.texturehit = "Null";
}
}
}
}
}
var transf : Transform;
class hitmat1 {
var enabled : boolean = true;
var texturehit : String;
@HideInInspector
var tranglind : int;
@HideInInspector
var Layer : LayerMask = 1;
}
var hitmat1 : hitmat1 = hitmat1();
function Update() {
var hit : RaycastHit;
if (Physics.Raycast(transf.position, transf.TransformDirection(Vector3.forward), hit, 2, hitmat1.Layer)) {
ind = hit.triangleIndex;
if (hitmat1.tranglind != ind && hitmat1.enabled) {
hitmat1.tranglind = ind;
var go1 = hit.collider.gameObject;
var mee = go1.GetComponent(MeshFilter).mesh;
var mre = go1.GetComponent(MeshRenderer);
if (mee && mre) {
if (go1.renderer.materials.Length > 1) {
var triangles = mee.triangles;
for (var submesh = 0; submesh < mee.subMeshCount; submesh++) {
var indices = mee.GetTriangles(submesh);
for (var i = 0; i < indices.Length; i += 3) {
if (indices[i] == triangles[ind * 3] && indices[i + 1] == triangles[ind * 3 + 1] && indices[i + 2] == triangles[ind * 3 + 2]) {
hitmat1.texturehit = mre.materials[submesh].mainTexture.name.ToLower();
i = indices.Length;
submesh = mee.subMeshCount;
}else{
hitmat1.texturehit = "Null";
}
}
}
}else{
mtexx = go1.renderer.material.mainTexture;
if (mtexx)
hitmat1.texturehit = mtexx.name.ToLower();
else
hitmat1.texturehit = "Null";
}
}
}
}
}