public void AddObstacle(int obsType, float gridSize) { if (obstacleT != null) { if (obstacleT.gameObject.layer == TBTK.GetLayerObstacleHalfCover() && obsType == 1) { return; } if (obstacleT.gameObject.layer == TBTK.GetLayerObstacleFullCover() && obsType == 2) { return; } #if UNITY_EDITOR Undo.DestroyObjectImmediate(obstacleT.gameObject); #endif } if (wallList.Count > 0) { if (!Application.isPlaying) { Grid grid = GridManager.GetInstance().GetGrid(); while (wallList.Count > 0) { RemoveWall(wallList[0].angle, grid.GetNeighbourInDir(this, wallList[0].angle)); } } else { while (wallList.Count > 0) { RemoveWall(wallList[0].angle, GetNeighbourFromAngle(wallList[0].angle)); } } } //float gridSize=GridManager.GetTileSize(); #if UNITY_EDITOR Transform obsT = (Transform)PrefabUtility.InstantiatePrefab(GridManager.GetObstacleT(obsType)); Undo.RecordObject(this, "Tile"); Undo.RecordObject(GetComponent <Renderer>(), "TileRenderer"); Undo.RegisterCreatedObjectUndo(obsT.gameObject, "Obstacle"); #else Transform obsT = (Transform)Instantiate(GridManager.GetObstacleT(obsType)); #endif //~ float offsetY=0; //~ if(type==_TileType.Square){ //~ if(obsType==1)offsetY=obsT.localScale.z*gridSize/4; //~ if(obsType==2)offsetY=obsT.localScale.z*gridSize/2; //~ } //~ else if(type==_TileType.Hex) offsetY=obsT.localScale.z*gridSize/4; obsT.position = GetPos(); //+new Vector3(0, offsetY, 0); obsT.localScale *= gridSize * GridManager.GetGridToTileSizeRatio(); obsT.parent = transform; obstacleT = obsT; walkable = false; GetComponent <Renderer>().enabled = false; //SetState(_TileState.Default); }