当前位置: 首页>>代码示例>>C#>>正文


C# Surface.addFace方法代码示例

本文整理汇总了C#中Surface.addFace方法的典型用法代码示例。如果您正苦于以下问题:C# Surface.addFace方法的具体用法?C# Surface.addFace怎么用?C# Surface.addFace使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Surface的用法示例。


在下文中一共展示了Surface.addFace方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: readMesh


//.........这里部分代码省略.........

								 		//vertex face
					                    v0 =(int) file.ReadUInt16 ();
				                    	v1 =(int) file.ReadUInt16 ();
				                     	v2 =(int) file.ReadUInt16 ();
					
										faces.Add (new Face (v0, v1, v2));

										//texture faces
										v0 =(int) file.ReadUInt16();
					                    v1 =(int) file.ReadUInt16 ();
					                    v2 =(int) file.ReadUInt16 ();
										tfaces.Add (new Face (v0, v1, v2));

								}

				file.BaseStream.Seek(OffsetTexCoords,SeekOrigin.Begin);
				Debug.Log("Num TextureCoord"+NumTexCoords);
				for (int i=0; i<NumTexCoords; i++) 
				{ 
					float u=(float) file.ReadInt16()/SkinWidth;
					float v=(float)1*- file.ReadInt16()/SkinWidth;
					uvCoords.Add(new Vector2(u,v));
				}

				//**************************************************
				file.BaseStream.Seek(OffsetFrames,SeekOrigin.Begin);
				Debug.Log("Num Frames"+OffsetFrames);
				for (int i=0; i<NumFrames; i++) 
				{
					Vector3 Scale=Vector3.zero;
					Vector3 Translate=Vector3.zero;

					Scale.x = file.ReadSingle();
					Scale.y = file.ReadSingle();
					Scale.z = file.ReadSingle();
					
					Translate.x = file.ReadSingle();
					Translate.y = file.ReadSingle();
					Translate.z = file.ReadSingle();

					char[] name= file.ReadChars(16);


					//Debug.LogWarning(new string(name));

					for (int j=0; j<NumVertices; j++) 
					{

					
						
						byte x = file.ReadByte();
						byte y = file.ReadByte();
						byte z = file.ReadByte();
						byte w = file.ReadByte();
					//	System.BitConverter.ToSingle(buffer, 0);

							   
						float sx = Scale.x * x  + Translate.x;
						float sy = Scale.z * z  + Translate.z;
						float sz = Scale.y * y  + Translate.y;

						model.vertex.Add(new Vector3(sx,sy,sz));
					}


				}

				//meshFilter.sharedMesh =Surface.createCube ("cube");
				for (int f=0; f<NumFrames; f++) 
				{
					Surface surface= new Surface("frame");
					for (int i=0; i<faces.Count; i++) 
					{
						Vector3 v1 = model.vertex[f * vertex_Count + faces[i].v0];
						Vector3 v2 = model.vertex[f * vertex_Count + faces[i].v1];
						Vector3 v3 = model.vertex[f * vertex_Count + faces[i].v2];
						Vector2 uv1 = uvCoords[0 * uv_count + tfaces[i].v0];
						Vector2 uv2 = uvCoords[0 * uv_count + tfaces[i].v1];
						Vector2 uv3 = uvCoords[0 * uv_count + tfaces[i].v2];
						surface.addFace(v1, v2, v3, uv1, uv2, uv3);

					}
					surface.build();
					surface.RecalculateNormals();
					surface.Optimize();
					model.Frames.Add(surface.getMesh());

				}

				model.meshFilter.sharedMesh=model.Frames[0];
				model.ready=true;

				Debug.LogWarning("read ok");
			}

				} else {
						Debug.LogError (filename + " dont exits");
				}
		}
开发者ID:Memorix101,项目名称:Unity3D-MD2-Loader,代码行数:101,代码来源:ImportMD2.cs


注:本文中的Surface.addFace方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。