/// <summary> /// 初期化 /// </summary> /// <param name="map"></param> public void Initialize(GeneratedMapBase map) { //マップデータの取得←マップは変化しないということだったので処理速度的にあらかじめコピーします。 this.m_GeneratedMapBase = map; m_MapData = m_GeneratedMapBase.TileData; //m_ArrayPos = ((MapDataBySectionDivision)m_GeneratedMapBase).GetPlayerPosition(); //スプライトレンダラーの取得 m_SpriteRenderer = this.gameObject.GetComponent <SpriteRenderer>(); //1ブロック分進みたいので自分の横Scale / 移動にかかるフレーム数 m_MoveAmount = this.transform.localScale.x / m_MoveAnimFrameMax; //1スプライトにかかるフレーム数の計算 m_OneSpriteFrame = m_MoveAnimFrameMax / m_UpMoveSprites.Length; //追いかけるプレイヤーの取得 m_Player1 = GameObject.FindObjectOfType <Player1>(); //カウンターを初期化 m_MoveAnimFrameCounter = m_MoveAnimFrameMax; //debug //m_ArrayPos.x = m_Player1.m_PlayerArrayPos.x - 1; //m_ArrayPos.y = m_Player1.m_PlayerArrayPos.y + 1; //this.transform.position = new Vector3(m_Player1.gameObject.transform.position.x - (this.transform.localScale.x * 1), m_Player1.gameObject.transform.position.y - (this.transform.localScale.x * 1), -0.5f); //m_Player1.transform.position = new Vector3(m_Player1.transform.position.x, m_Player1.transform.position.y, -0.5f); }
/// <summary> /// タイルを配置します。 /// </summary> /// <param name="generatedMap">生成されたマップオブジェクト</param> public void GenerateTiles(GeneratedMapBase generatedMap) { // 以前のマップを破棄する if (this.generatedTiles != null) { foreach (var obj in this.generatedTiles) { if (obj != null) { GameObject.Destroy(obj); } } } this.generatedTiles = new List <GameObject>(); // 指定されたマップで描画する for (int x = 0; x < generatedMap.DungeonRect.width; x++) { for (int y = 0; y < generatedMap.DungeonRect.height; y++) { if (this.tileObjectMap[generatedMap.TileData[x, y]] == null) { continue; } this.generatedTiles.Add(GameObject.Instantiate <GameObject>( this.tileObjectMap[generatedMap.TileData[x, y]], new Vector3(x, -y, 0), new Quaternion(), this.tileContainer.transform )); } } }
public void Initialize(GeneratedMapBase map) { //マップデータの取得←マップは変化しないということだったので処理速度的にあらかじめコピーします。 this.m_GeneratedMapBase = map; m_MapData = m_GeneratedMapBase.TileData; m_PlayerArrayPos = ((MapDataBySectionDivision)m_GeneratedMapBase).GetPlayerPosition(); //スプライトレンダラーの取得 m_SpriteRenderer = this.gameObject.GetComponent <SpriteRenderer>(); m_MoveAmount = this.transform.localScale.x; }
/// <summary> /// 生成実行 /// </summary> public void OnClick() { IMapGenerator logic = this.logicChanger.Logic; this.map = logic.DoGenerate(this.mapSize, this.complexLevel, this.player1, this.tileContainer); if (this.map != null) { // マップタイルを配置 Debug.Log(this.map.TileDataToString()); this.tileGenerator.GenerateTiles(this.map); } }