/// <summary> /// ブロックの色を返却 /// </summary> /// <returns></returns> public BlockColor?GetBlockColor(DataBase.COLOR color) { BlockColor?ret = null; switch (color) { case DataBase.COLOR.RED: ret = _1pBlockColor; break; case DataBase.COLOR.BLUE: ret = _2pBlockColor; break; case DataBase.COLOR.GREEN: ret = _3pBlockColor; break; case DataBase.COLOR.YELLOW: ret = _4pBlockColor; break; default: break; } return(ret); }
Color ConvertColor(DataBase.COLOR cr) { switch (cr) { case DataBase.COLOR.RED: return(Color.red); case DataBase.COLOR.BLUE: return(Color.blue); case DataBase.COLOR.GREEN: return(Color.green); case DataBase.COLOR.YELLOW: return(Color.yellow); } return(Color.white); }
/// <summary> /// 指定色のグリッドエリアの落下を開始 /// ※RigitBodyのFreezePosition(y)を解除 /// </summary> /// <param name="color"></param> public void StartFall(DataBase.COLOR color) { List <Grid> list = null; // 判定するリストが何色か判定 switch (color) { case DataBase.COLOR.RED: list = reds; break; case DataBase.COLOR.BLUE: list = blues; break; case DataBase.COLOR.GREEN: list = greens; break; case DataBase.COLOR.YELLOW: list = yellows; break; } // リストのnull判定 if (list == null) { return; } // 落下処理 foreach (var it in list) { Transform parent = it.transform.parent; TypeL typeL = parent.GetComponent <TypeL>(); if (typeL) { //Positionのyのみ解除 RigidbodyConstraints mask = RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ; //マスクの割り当て typeL.SetConstraints(mask); return; } } }
/// <summary> /// 指定色のグリッドエリアに指定座標が含まれているか(侵入しているか) /// </summary> /// <param name="pos">判定座標</param> /// <param name="color">判定色</param> /// <returns>結果</returns> public bool CheckColorArea(Vector3 pos, DataBase.COLOR color) { List <Grid> list = null; // 判定するリストが何色か判定 switch (color) { case DataBase.COLOR.RED: list = reds; break; case DataBase.COLOR.BLUE: list = blues; break; case DataBase.COLOR.GREEN: list = greens; break; case DataBase.COLOR.YELLOW: list = yellows; break; } // リストのnull判定 if (list == null) { return(false); } // リストの中身の侵入チェック foreach (var it in list) { if (it.CheckIntrusion(pos)) { isStepOnOnce[(int)color] = !typeLlist[(int)color].GetIsRevival(); return(true); } } return(false); }
/// <summary> /// 選択色のグリッドを格納したリストをクリアする /// </summary> /// <param name="color">色</param> public void ClearList(DataBase.COLOR color) { switch (color) { case DataBase.COLOR.RED: reds.Clear(); return; case DataBase.COLOR.BLUE: blues.Clear(); return; case DataBase.COLOR.GREEN: greens.Clear(); return; case DataBase.COLOR.YELLOW: yellows.Clear(); return; } }
// Use this for initialization void Start() { // create list instance! grids = new List <GameObject>(); // grids data! var gridChildren = GetComponentsInChildren <Grid>(true); // add management list! foreach (var it in gridChildren) { grids.Add(it.gameObject); } // get material! mat = GetComponent <MeshRenderer>().material; // create collider instance! cols = new Collider[gridChildren.Length]; // loop index! int index = 0; // get collider of children! foreach (var it in gridChildren) { cols[index++] = it.GetComponent <Collider>(); } // get Rigidbody! rb = GetComponent <Rigidbody>(); // set color! color = transform.GetChild(0).GetComponent <Grid>().color; // reset pos! pos = this.transform.position; }
/// <summary> /// 色の設定 /// </summary> /// <param name="color"></param> public void SetColor(DataBase.COLOR color) { this.color = color; }
public bool GetIsFall(DataBase.COLOR color) { //一度踏まれている状態 && 復活処理をしていなければ return(GetIsStepOnOnce(color) && !typeLlist[(int)color].GetIsRevival()); }
private bool allChild = true;//非アクティブな子オブジェクトもGetComponentsInChildrenの対象にするか /// <summary> /// 一度踏まれているか /// </summary> /// <param name="color"></param> /// <returns></returns> private bool GetIsStepOnOnce(DataBase.COLOR color) { return(isStepOnOnce[(int)color]); }
/// <summary> /// isFallフラグのリセット /// </summary> /// <param name="color"></param> public void ResetIsFall(DataBase.COLOR color) { isStepOnOnce[(int)color] = false; }