1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Tile : FFMonoBehaviour { public bool mergedThisTurn = false; public int indRow; public int indCol; public int Number { get{ return number;} set { number = value; if (number == 0) SetEmpty(); else { ApplyStyle(number); SetVisible();} } } private int number; --생략-- | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | bool MakeOneMoveDownIndex(Tile[] LineOfTiles) { for (int i = 0; i < LineOfTiles.Length - 1; i++) { //MOVE BLOCK if (LineOfTiles[i].Number == 0 && LineOfTiles[i + 1].Number != 0) { LineOfTiles[i].Number = LineOfTiles[i + 1].Number; LineOfTiles[i + 1].Number = 0; return true; } // MERGE BLOCK if (LineOfTiles[i].Number != 0 && LineOfTiles[i].Number == LineOfTiles[i + 1].Number && LineOfTiles[i].mergedThisTurn == false && LineOfTiles[i + 1].mergedThisTurn == false) { LineOfTiles[i].Number *= 2; LineOfTiles[i + 1].Number = 0; LineOfTiles[i].mergedThisTurn = true; LineOfTiles[i].PlayMergeAnimation(); Character.Instance.attack = (int) LineOfTiles[i].Number; //여기에서 에러.(nullreference) Debug.Log(LineOfTiles[i].Number); if (LineOfTiles[i].Number == 2048) YouWon(); return true; } } return false; } | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Character : FFMonoBehaviour { private static Character instance; public static Character Instance { get { return instance; } } // --중략-- public int attack { get { return m_attack; } set { m_attack = value;} } float m_attackSpeed = 1; int m_attack = 15; } | cs |
개신기하다
시발 싱글턴에서 인스턴트.디스 안햇네
모바일은 이게 더 불편해요. Awake 안에 Instance = this; 넣고 MakeOneMoveDownIndex 일반화하세요. - dc App
ㄴ 그거 햇어요 ㄳㄳ
// Move Block // Merge Block 이런 거 다 함수로 분리하세요 - dc App