关键词不能为空

当前您在: 主页 > 英语 >

unity3d mesh类使用

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:52
tags:

-

2021年2月1日发(作者:periscope)


项目需求我需要利用鼠标动态绘制三维多边形实体,


并赋予


collider


属性,


unity3d

< p>
中提


供了


mesh


类,可 以用程序动态绘制网格,难点在于在绘制网格时需要将网格三角划分并按


顺时针指定顶点 的三角序列。


这就需要对网格顶点按顺时针方向选三个顶点做三角检测。



现成的相关算法,我结合


unity3d

< p>
写了一个


C#


版的。


这里 用到了循环队列。可以将下面代码


考出来后缀改为


*.CS


更好看些,注意文件名为


MeshTest


.CS


using UnityEngine;


using c;


using System;


using



public class MeshTest : MonoBehaviour {





public float heigth = 0.0f;



public Camera cam;



public Material material;




private bool buildStatus = false;



private Ray ray



private RaycastHit hit;




private Ray ray2



private RaycastHit hit2;



private Vector3[] newVertices;





private ist vtAarry = new ist();



//


动态添加数组只能用

< p>
ArrayList



void Update()



{




if (buildStatus)





{





if (seButtonDown (1))






{






ray = PointToRay(osition);






if(t(ray,out hit))






{







(.x);







(.z);






}





}





}





if (seButtonDown (0))




{





ray2 = PointToRay(osition);





if(t(ray2,out hit2))





{






(


网格







();






if( ==






{







(


网格


2







(


网格







}





}




}



}



void OnGUI()



{




if ( (new Rect (10, 10, 100, 25),


建模






{





int i = 0;





int j = 0;





int mLength = / 2;





newVertices = new Vector3[mLength];





GameObject g = new GameObject();





ponent();





ponent().material = material;





=







MeshFilter meshFilter = ponent ();





//get the mesh





//





Mesh mymesh =






for (i= 0; i





{






newVertices[i]


=


new


Vector3(((f loat)vtAarry[j]-(float)vtAarry[0]),10,((float)vtAa rry[j+1]-(float)vtAarry[1]));






j += 2;





}





mymesh = CreateMesh(mLength,newVertices,mymesh);





on


=


new


Vector3((fl oat)vtAarry[0],heigth,(float)vtAarry[1]);





ponent();





//GameObject clone





//clone


=


Instantiate(g,new


Vector3((f loat)vtAarry[0],heigth,(float)vtAarry[1]),ty) as GameObject;







}




if ( (new Rect (10, 40, 100, 25),


选点






{





buildStatus = true;





}



}



Mesh CreateMesh(int mLength,Vector3[] Vertices,Mesh mymesh)



{










//


利用


mesh


类画不规则多边形








//the triangle arraylist




//




int i = 0;




int j = 0;





int numTiangle = (mLength - 2) * 3;





Vector3[] normals;




Vector2[] newUV;







int[] newTiangles;




newTiangles = new int[numTiangle];




normals = new Vector3[mLength];




newUV = new Vector2[mLength];





es = Vertices;





ChangeToTriangle (newTiangles);





les = newTiangles;





for(i = 0;i




{





normals[i] =




}




s = normals;





for(i = 0;i




{





newUV[i] = new Vector2(newVertices[i].x,newVertices[i].y);




}




= newUV;

-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:52,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595360.html

unity3d mesh类使用的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文