请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

1回答

王海波 2021-07-09 20:44:58

你好同学,

被点击的瓶子会派发事件

BottleSelected

 之后会根据当前的状态来选择是浮起小球还是落下小球


浮起小球:

可查看BottleSelected的MakeFloat方法

GameModel.Instance.FloatObject = bottleModel;
BallModel ballModel = GameModel.Instance.FloatObject.BallModels.Peek();
//将小球放到瓶子的DropPoint位置
ballModel.BallGo.transform.position = bottleModel.DropPoint.transform.position;
Rigidbody2D rigidbody2D = ballModel.BallGo.GetComponent<Rigidbody2D>();
rigidbody2D.gravityScale = 0;

落下小球请查看BallRelease.cs内的代码

BallRelease.Execute的这一段

if (releaseEvent.BottleModel.CanPush(releaseEvent.BallModel))
{
    BallModel bm = GameModel.Instance.FloatObject.BallModels.Pop();
    releaseEvent.BottleModel.BallModels.Push(bm);

    //根据释放的瓶子的DropPoint来设置小球的位置
    releaseEvent.BallModel.BallGo.transform.position =
        releaseEvent.BottleModel.DropPoint.transform.position;
    rigidBody2D.gravityScale = Constants.BallGravityScale;
    GameModel.Instance.FloatObject = null;

    if (releaseEvent.BottleModel.IsSameColor() &&
        releaseEvent.BottleModel.BallModels.Count == Constants.MaxBallCount)
    {
        EventDispatcher.Instance.Invoke(Define.Event.BottleComplete);
    }
}



0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号