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


C# TileData.setTimeBounds方法代码示例

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


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

示例1: Awake

	// Use this for initialization
	void Awake (){
		
		//get level data
		var lvlPL=GameObject.FindGameObjectWithTag("LevelPlaylist").GetComponent<LevelPlaylist>();
		var lvlDB=GameObject.FindGameObjectWithTag("EntityDatabase").GetComponent<LevelDatabase>();
		stats=lvlDB.getLevel(lvlPL.getCurrentLevelName());
		
		//var spawn_positions=new List<Tile>();
		
		mesh_bounds=tile_mesh.renderer.bounds;
		main_camera=GameObject.Find("Main Camera").GetComponent<CameraScript>();
		main_camera.DetachPlane();
		
		
		var hexa_size=mesh_bounds.size;
		
		terrain=new Tile[LevelWidth,LevelHeight];
		
		var pos=Vector3.zero;
		float tile_w=hexa_size.x,tile_h=hexa_size.z;//ground_prefab.transform.localScale.x
		
		
		
		//creating tiles
		Vector3 coor=new Vector3(0,0,0);
		
		for (int i=0;i<terrain.GetLength(0);i++)
		{
			if (i%2!=0)
				pos.z=tile_h/2;
			else
				pos.z=0;
			
			if (i!=0&&(i%2==0)){
				coor.x-=1;
			}
			coor.y=i;
			
			for (int j=0;j<terrain.GetLength(1);j++)
			{
				var tile=Instantiate(ground_prefab,pos,Quaternion.identity) as Transform;
				tile.transform.parent=transform;
				var ts=tile.GetComponent("Tile") as Tile;
				terrain[i,j]=ts;
				tiles.Add(ts);
				ts.setCoordinate(new Vector3(coor.x+j,coor.y,-((coor.x+j)+coor.y)));
				
				if (Subs.RandomPercent()<stats.Tile_random_low_change){
					ts.Tile_Data.setMovementBounds(stats.Tile_random_low_height,0f);
					ts.Tile_Data.setTimeBounds(stats.Tile_random_time_min,stats.Tile_random_time_max,true);
				}
				
				if (Subs.RandomPercent()<stats.Tile_random_high_change){
					ts.Tile_Data.setMovementBounds(stats.Tile_random_high_height,0f);
					ts.Tile_Data.setTimeBounds(stats.Tile_random_time_min,stats.Tile_random_time_max,true);
				}

				pos.z+=tile_h+0.01f;
			}
			//pos.x+=tile_w+(tile_w*0.5f);
			pos.x+=tile_w*(3f/4f);
		}
		//load land shape DEV. circle
		
		int xx=terrain.GetLength(0)/2,yy=terrain.GetLength(1)/2;
		center_point=terrain[xx,yy].getCoordinate();
		var radius=xx-1;
		
		
		
		for (int i=0;i<terrain.GetLength(0);i++)
		{
			for (int j=0;j<terrain.GetLength(1);j++)
			{
				var ts=terrain[i,j];
				if (!HexaDistanceInside(center_point,ts.getCoordinate(),radius)){
					ts.gameObject.SetActive(false);
				}					
			}
		}
		
		//group up tiles
		int group_amount=radius+1;
		for (int g=0;g<group_amount;g++){
			radius=(group_amount-g);
			var data=new TileData(Vector3.zero,g);
			data.setMovementBounds(0.03f,0.03f);
			data.setTimeBounds(1000,1000,true);
			tile_groups.Add(data);
			
			foreach (var ts in tiles){
				if (HexaDistanceInside(center_point,ts.getCoordinate(),radius)){
					ts.setTileGroup(data);
				}
			}
		}
		terrain[xx,yy].setTileGroup(null);//center not moving
		terrain[xx,yy].Tile_Data.Activate(false);
		
//.........这里部分代码省略.........
开发者ID:HuvaaKoodia,项目名称:SummerProject2013,代码行数:101,代码来源:TerrainController.cs


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