//鼠标操作交换位置时 public void ExChangeSweets(GameSweet sweetOnclick1, GameSweet sweetOnclick2) { if (sweetOnclick1.Equals(sweetOnclick2)) { return; } if (sweetOnclick1.CanMove() && sweetOnclick2.CanMove()) { sweetsarray[sweetOnclick1.Y, sweetOnclick1.X] = sweetOnclick2; sweetsarray[sweetOnclick2.Y, sweetOnclick2.X] = sweetOnclick1;//记录位子更新 if (MatchSweets(sweetOnclick1, sweetOnclick2.X, sweetOnclick2.Y) != null || MatchSweets(sweetOnclick2, sweetOnclick1.X, sweetOnclick1.Y) != null || sweetOnclick1.Type == SweetsType.RAINBOWCANDY || sweetOnclick2.Type == SweetsType.RAINBOWCANDY)//可以交换时 { sweetsarray[sweetOnclick1.Y, sweetOnclick1.X] = sweetOnclick2; sweetsarray[sweetOnclick2.Y, sweetOnclick2.X] = sweetOnclick1;//记录位子更新 int tempx = sweetOnclick1.X , tempy = sweetOnclick1.Y; sweetOnclick1.MoveComponent.Move(sweetOnclick2.X, sweetOnclick2.Y, fillTime); sweetOnclick2.MoveComponent.Move(tempx, tempy, fillTime); if (sweetOnclick1.Type == SweetsType.RAINBOWCANDY && sweetOnclick1.CanClear() && sweetOnclick2.CanClear()) { ClearColorSweet clearcolor = sweetOnclick1.GetComponent <ClearColorSweet>(); if (clearcolor != null) { clearcolor.ClearColor = sweetOnclick2.ColorComponent.Color; } ClearSweet(sweetOnclick1.X, sweetOnclick1.Y); } if (sweetOnclick2.Type == SweetsType.RAINBOWCANDY && sweetOnclick1.CanClear() && sweetOnclick2.CanClear()) { ClearColorSweet clearcolor = sweetOnclick2.GetComponent <ClearColorSweet>(); if (clearcolor != null) { clearcolor.ClearColor = sweetOnclick1.ColorComponent.Color; } ClearSweet(sweetOnclick2.X, sweetOnclick2.Y); } pressedSweet = null; enteredSweet = null; ClearAllMatchedSweet(); StartCoroutine(AllFill()); } else { sweetsarray[sweetOnclick1.Y, sweetOnclick1.X] = sweetOnclick1; sweetsarray[sweetOnclick2.Y, sweetOnclick2.X] = sweetOnclick2;//记录位子更新 } } }