• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# UnityEngine.MeshCollider类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中UnityEngine.MeshCollider的典型用法代码示例。如果您正苦于以下问题:C# MeshCollider类的具体用法?C# MeshCollider怎么用?C# MeshCollider使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



MeshCollider类属于UnityEngine命名空间,在下文中一共展示了MeshCollider类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Start

    void Start()
    {
        filter = gameObject.GetComponent<MeshFilter>();
        coll = gameObject.GetComponent<MeshCollider>();

        //past here is just to set up an example chunk
        blocks = new Block[chunkSize, chunkSize, chunkSize];

        for (int x = 0; x < chunkSize; x++)
        {
            for (int y = 0; y < chunkSize; y++)
            {
                for (int z = 0; z < chunkSize; z++)
                {
                    blocks[x, y, z] = new BlockAir();
                }
            }
        }

        blocks[1, 1, 1] = new Block();
        blocks[1, 2, 1] = new Block();
        blocks[1, 2, 2] = new Block();
        blocks[2, 2, 2] = new Block();

        UpdateChunk();
    }
开发者ID:billy1234,项目名称:TerrainGenMaster,代码行数:26,代码来源:Chunk.cs


示例2: Start

	// Use this for initialization
	void Start () {
		mesh = GetComponent<MeshFilter> ().mesh;
		meshC = GetComponent<MeshCollider> ();
		vertices = mesh.vertices;
		fireballs = GameObject.FindGameObjectsWithTag("Fireball");
		Debug.Log (vertices.Length);
	}
开发者ID:kkiniaes,项目名称:Fire-On-Ice,代码行数:8,代码来源:Island.cs


示例3: Start

    // Use this for initialization
    void Start()
    {
        hmul = 1F / hardness;
        mf = GetComponent<MeshFilter> ();
        mc = GetComponent<MeshCollider> ();
        verts = mf.mesh.vertices;
        tris = mf.mesh.triangles;
        //mf.mesh.SetIndices (tris, MeshTopology.LineStrip, 0);

        connections = new VertexConnection[verts.Length];
        for (int i = 0; i < verts.Length; i++) {
            Vector3 P1 = verts [i];
            VertexConnection VC1 = connections [i];
            for (int n = i+1; n < verts.Length; n++) {
                if (P1 == verts [n]) {
                    var VC2 = connections [n];
                    if (VC2 == null)
                        VC2 = connections [n] = new VertexConnection ();
                    if (VC1 == null)
                        VC1 = connections [i] = new VertexConnection ();
                    VC1.connections.Add (n);
                    VC2.connections.Add (i);
                }
            }
        }
    }
开发者ID:00yoshi,项目名称:Test,代码行数:27,代码来源:DamageMesh.cs


示例4: Awake

 /// <summary>
 /// Initialized the components
 /// </summary>
 void Awake()
 {
     this.isoObj = GetComponent<IsoObject>();
     this.collider = GetComponent<MeshCollider>();
     collider.sharedMesh = createMesh();
     deltaSize = isoObj.Size;
 }
开发者ID:FrankieAvocado,项目名称:UnityHarmsDealer,代码行数:10,代码来源:IsoCollider.cs


示例5: GenerateMesh

    public void GenerateMesh(int[,] map, float squareSize)
    {
        if(wallCollider == null)
        {
            wallCollider = walls.gameObject.AddComponent<MeshCollider> ();
        }
        outlines.Clear();
        checkedVertices.Clear ();
        triangleDictionary.Clear();

        squareGrid = new SquareGrid(map, squareSize);

        vertices = new List<Vector3>();
        triangles = new List<int>();

        for (int x = 0; x < squareGrid.squares.GetLength(0); x++)
        {
            for(int y =0; y < squareGrid.squares.GetLength(1); y++)
            {
                TriangulateSquare(squareGrid.squares[x,y]);
            }
        }

        Mesh mesh = new Mesh();
        cave.mesh = mesh;
        mesh.vertices = vertices.ToArray();
        mesh.triangles = triangles.ToArray();
        mesh.RecalculateNormals();

        if(!is2D) {
            CreateWallMesh();
        }
    }
开发者ID:AshKatchem,项目名称:GameTest,代码行数:33,代码来源:MeshGen.cs


示例6: Awake

		// Use this for initialization
		protected void Awake()
		{
			Filter = gameObject.GetComponent<MeshFilter>();
			Coll = gameObject.GetComponent<MeshCollider>();

			//past here is just to set up an example chunk
			//Blocks = new VoxBlock[ChunkSize, ChunkSize, ChunkSize];

			for (var x = 0; x < World.ChunkSize; x++)
			{
				for (var y = 0; y < World.ChunkSize; y++)
				{
					for (var z = 0; z < World.ChunkSize; z++)
					{
						Blocks[x, y, z] = new Block(Color.white) { BlockType = VoxBlockType.Empty };
					}
				}
			}

			//Blocks[1, 14, 1] = new VoxBlock();

			//Blocks[3, 5, 2] = new VoxBlock();
			//Blocks[4, 5, 2] = new VoxBlock();


			//UpdateChunk();

		}
开发者ID:Quixotic7,项目名称:VR-Vox,代码行数:29,代码来源:Chunk.cs


示例7: Start

 // Use this for initialization
 void Start()
 {
     // check this node for mReferenceCollider
     if (mReferenceCollider == null) {
         mReferenceCollider = this.GetComponent<BoxCollider>();
     }
     if (mReferenceCollider == null) {
         mReferenceCollider = this.GetComponent<SphereCollider>();
     }
     if (mReferenceCollider == null) {
         mReferenceCollider = this.GetComponent<CapsuleCollider>(); // unlikely.
     }
     // check the parent node for mReferenceCollider
     if (mReferenceCollider == null) {
         mReferenceCollider = this.transform.parent.GetComponent<BoxCollider>();
     }
     if (mReferenceCollider == null) {
         mReferenceCollider = this.transform.parent.GetComponent<SphereCollider>();
     }
     if (mReferenceCollider == null) {
         mReferenceCollider = this.transform.parent.GetComponent<CapsuleCollider>(); // unlikely.
     }
     if (mMeshCollider == null) {
         mMeshCollider = this.GetComponent<MeshCollider>();
     }
 }
开发者ID:C453,项目名称:Valdemar,代码行数:27,代码来源:AlphaMeshColliderCopyColliderEnabled.cs


示例8: Start

 void Start()
 {
     collider=GetComponent<MeshCollider>();
     startRot=transform.rotation;
     rbody=GetComponent<Rigidbody>();
     startPos=transform.position;
 }
开发者ID:drfuzzyness,项目名称:WearHax-OlivMatt,代码行数:7,代码来源:AddForce.cs


示例9: BuildMesh

	private void BuildMesh (MeshFilter mf, MeshRenderer mr, MeshCollider mc, int i, int j) {
		Mesh mesh = new Mesh();
		mesh.Clear();
		
		// the vertices of our new mesh, separated into two groups
		Vector3[] inner = new Vector3[grid.smoothness + 1]; // the inner vertices (closer to the centre)
		Vector3[] outer = new Vector3[grid.smoothness + 1]; // the outer vertices

		// vertices must be given in local space
		Transform trnsfrm = mf.gameObject.transform;
		
		// the amount of vertices depends on how much the grid is smoothed
		for (int k = 0; k < grid.smoothness + 1; k++) {
			// rad is the current distance from the centre, sctr is the current sector and i * (1.0f / grid.smoothness) is the fraction inside the current sector
			inner[k] = trnsfrm.InverseTransformPoint(grid.GridToWorld(new Vector3(i, j + k * (1.0f / grid.smoothness), 0)));
			outer[k] = trnsfrm.InverseTransformPoint(grid.GridToWorld(new Vector3(i + 1, j + k * (1.0f / grid.smoothness), 0)));
		}
		
		//this is wher the actual vertices go
		Vector3[] vertices = new Vector3[2 * (grid.smoothness + 1)];
		// copy the sorted vertices into the new array
		inner.CopyTo(vertices, 0);
		// for each inner vertex its outer counterpart has the same index plus grid.smoothness + 1, this will be relevant later
		outer.CopyTo(vertices, grid.smoothness + 1);
		// assign them as the vertices of the mesh
		mesh.vertices = vertices;
		
		// now we have to assign the triangles
		int[] triangles = new int[6 * grid.smoothness]; // for each smoothing step we need two triangles and each triangle is three indices
		int counter = 0; // keeps track of the current index
		for (int k = 0; k < grid.smoothness; k++) {
			// triangles are assigned in a clockwise fashion
			triangles[counter] = k;
			triangles[counter+1] = k + (grid.smoothness + 1) + 1;
			triangles[counter+2] = k + (grid.smoothness + 1);
			
			triangles[counter+3] = k + 1;
			triangles[counter+4] = k + (grid.smoothness + 1) + 1;
			triangles[counter+5] = k;

			counter += 6; // increment the counter for the nex six indices
		}
		mesh.triangles = triangles;
		
		// add some dummy UVs to keep the shader happy or else it complains, but they are not used in this example
		Vector2[] uvs = new Vector2[vertices.Length];
        for (int k = 0; k < uvs.Length; k++) {
            uvs[k] = new Vector2(vertices[k].x, vertices[k].y);
        }
        mesh.uv = uvs;
		
		// the usual cleanup
		mesh.RecalculateNormals();
		mesh.RecalculateBounds();
		mesh.Optimize();
		
		// assign the mesh  to the mesh filter and mesh collider
		mf.mesh = mesh;
		mc.sharedMesh = mesh;
	}
开发者ID:Gapti,项目名称:ClashOfClanRIP,代码行数:60,代码来源:ConstructPolarBlocks.cs


示例10: pStart

 private void pStart()
 {
     _collider = (MeshCollider)gameObject.collider;
         //this sets the collider mesh to equal the objects mesh filter.
         //May not be required if you aren't using 2D Toolkit
         _collider.sharedMesh = gameObject.GetComponent<MeshFilter>().sharedMesh;
 }
开发者ID:phil-me-up,项目名称:Rain-one--Mesh-Sensor,代码行数:7,代码来源:MeshSensor.cs


示例11: DuplicateOldChunk

	public void DuplicateOldChunk(string ChunkData)
	{
		meshCollider = GetComponent<MeshCollider>();
		map = new byte[width, width, width];
		int iter = 0;
		for (int x = 0; x < width; x++)
		{
			for (int z = 0; z < width; z++)
			{
				//make the bottom layer of the chunk all solid blocks
				if(ChunkData[iter] == '0')
					map[x,0,z]=0;
				else
					map[x,0,z]=1;
				iter++;
				//make the second layer of the chunk random
				if(ChunkData[iter] == '0')
					map[x,1,z]=0;
				else
					map[x,1,z]=1;
				iter++;
			}
		}
		mesh = new Mesh();
		GetComponent<MeshFilter>().mesh = mesh;
		Regenerate();
	}
开发者ID:Panamax,项目名称:UncleCraft,代码行数:27,代码来源:Chunk.cs


示例12: Awake

 // Use this for initialization
 void Awake()
 {
     rMesh = gameObject.GetComponent<MeshRenderer>();
     fMesh = gameObject.GetComponent<MeshFilter>();
     cMesh = gameObject.GetComponent<MeshCollider>();
     mesh = new Mesh();
 }
开发者ID:kristafervale,项目名称:MapEditor,代码行数:8,代码来源:cell_c.cs


示例13: Awake

	void Awake () {
		anim = GetComponent<Animator>();
		SFX = GetComponent<AudioSource>();
		health = startingHealth;
		meshCollider = GetComponent<MeshCollider>();
		meshCollider.enabled = false;
	}
开发者ID:gitter-badger,项目名称:Citadel,代码行数:7,代码来源:EnemyHealth.cs


示例14: Start

    // Use this for initialization
    void Start()
    {
        world = GameObject.FindWithTag("world").GetComponent("World") as World;

        displayBlock = new BlockSelect();
        filter = gameObject.GetComponent<MeshFilter>();
        coll = gameObject.GetComponent<MeshCollider>();
    }
开发者ID:TwoClunkers,项目名称:Clunk-Genesis,代码行数:9,代码来源:SelectedCube+(copy).cs


示例15: Start

    void Start()
	{
		if (DataManager == null) 
			DataManager = GetManager.GetDataManager ();	// need a better way to do this, keep references in a static object..!
		HasInitialLoad = false;
        filter = gameObject.GetComponent<MeshFilter>();
        coll = gameObject.GetComponent<MeshCollider>();
    }
开发者ID:Deus0,项目名称:Zeltex,代码行数:8,代码来源:Chunk.cs


示例16: Initialize

		public void Initialize (World world, Chunk chunk, MeshFilter meshFilter, MeshCollider meshCollider)
		{
				this.meshFilter = meshFilter;
				this.meshCollider = meshCollider;
				this.chunk = chunk;
				this.world = world;
				this.lastLevelY = world.LevelY;
		}
开发者ID:indigo,项目名称:indigo,代码行数:8,代码来源:ChunkObject.cs


示例17: Start

	void Start(){
		mesh = GetComponent<MeshFilter>().mesh;
		meshCollider = GetComponent<MeshCollider>();

		GenerateTerrain();
		BuildMesh();
		UpdateMesh();
	}
开发者ID:pravusjif,项目名称:PravusUnityTests,代码行数:8,代码来源:PolygonGenerator.cs


示例18: Initialize

 public void Initialize(Block[, ,] data, int size, Material material, Terrain world)
 {
     _meshFilter = GetComponent<MeshFilter>();
     _meshCollider = GetComponent<MeshCollider>();
     GetComponent<MeshRenderer>().material = material;
     this._data = data;
     _size = size;
     _parentWorld = world;
 }
开发者ID:fuboss,项目名称:aiProject,代码行数:9,代码来源:Chunk.cs


示例19: SurfaceData

 /// <summary>
 /// <para>Constructor for conveniently filling out a SurfaceData struct.</para>
 /// </summary>
 /// <param name="_id">ID for the surface in question.</param>
 /// <param name="_outputMesh">MeshFilter to write Mesh data to.</param>
 /// <param name="_outputAnchor">WorldAnchor receiving the anchor point for the surface.</param>
 /// <param name="_outputCollider">MeshCollider to write baked physics data to (optional).</param>
 /// <param name="_trianglesPerCubicMeter">Requested resolution for the computed Mesh.  Actual resolution may be less than this value.</param>
 /// <param name="_bakeCollider">Set to true if collider baking is/has been requested.</param>
 public SurfaceData(SurfaceId _id, MeshFilter _outputMesh, WorldAnchor _outputAnchor, MeshCollider _outputCollider, float _trianglesPerCubicMeter, bool _bakeCollider)
 {
     this.id = _id;
     this.outputMesh = _outputMesh;
     this.outputAnchor = _outputAnchor;
     this.outputCollider = _outputCollider;
     this.trianglesPerCubicMeter = _trianglesPerCubicMeter;
     this.bakeCollider = _bakeCollider;
 }
开发者ID:CarlosHBC,项目名称:UnityDecompiled,代码行数:18,代码来源:SurfaceData.cs


示例20: weights

    private CWeightList[] nodeWeights; // array of node weights (one per node)

    #endregion Fields

    #region Methods

    // Function:    Start
    //      This basically translates the information about the skinned mesh into
    // data that we can internally use to quickly update the collision mesh.
    void Start()
    {
        SkinnedMeshRenderer rend = GetComponent(typeof(SkinnedMeshRenderer)) as SkinnedMeshRenderer;
        collide = GetComponent(typeof(MeshCollider)) as MeshCollider;

        if (collide!=null && rend!=null)
        {
            Mesh baseMesh = rend.sharedMesh;
            mesh = new Mesh();
            mesh.vertices = baseMesh.vertices;
            mesh.uv = baseMesh.uv;
            mesh.triangles = baseMesh.triangles;
            newVert = new Vector3[baseMesh.vertices.Length];

            short i;
            // Make a CWeightList for each bone in the skinned mesh
            nodeWeights = new CWeightList[rend.bones.Length];
            for ( i=0 ; i<rend.bones.Length ; i++ )
            {
                nodeWeights[i] = new CWeightList();
                nodeWeights[i].transform = rend.bones[i];
            }

            // Create a bone weight list for each bone, ready for quick calculation during an update...
            Vector3 localPt;
            for ( i=0 ; i<baseMesh.vertices.Length ; i++ )
            {
                BoneWeight bw = baseMesh.boneWeights[i];
                if (bw.weight0!=0.0f)
                {
                    localPt = baseMesh.bindposes[bw.boneIndex0].MultiplyPoint3x4( baseMesh.vertices[i] );
                    nodeWeights[bw.boneIndex0].weights.Add( new CVertexWeight( i, localPt, bw.weight0 ) );
                }
                if (bw.weight1!=0.0f)
                {
                    localPt = baseMesh.bindposes[bw.boneIndex1].MultiplyPoint3x4( baseMesh.vertices[i] );
                    nodeWeights[bw.boneIndex1].weights.Add( new CVertexWeight( i, localPt, bw.weight1 ) );
                }
                if (bw.weight2!=0.0f)
                {
                    localPt = baseMesh.bindposes[bw.boneIndex2].MultiplyPoint3x4( baseMesh.vertices[i] );
                    nodeWeights[bw.boneIndex2].weights.Add( new CVertexWeight( i, localPt, bw.weight2 ) );
                }
                if (bw.weight3!=0.0f)
                {
                    localPt = baseMesh.bindposes[bw.boneIndex3].MultiplyPoint3x4( baseMesh.vertices[i] );
                    nodeWeights[bw.boneIndex3].weights.Add( new CVertexWeight( i, localPt, bw.weight3 ) );
                }
            }

            UpdateCollisionMesh();
        }
        else
        {
            Debug.LogError(gameObject.name + ": SkinnedCollisionHelper: this object either has no SkinnedMeshRenderer or has no MeshCollider!");
        }
    }
开发者ID:cupsster,项目名称:Rotorcross,代码行数:66,代码来源:SkinnedCollisionHelper.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# UnityEngine.MeshFilter类代码示例发布时间:2022-05-26
下一篇:
C# UnityEngine.Mesh类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap