コード例 #1
0
ファイル: PlayerManager.cs プロジェクト: fctony/ForestWar
    /// <summary>
    /// 创建同步请求对象,将用于同步操作的脚本都放置到该游戏物体上
    /// </summary>
    public void CreateSyncRequest()
    {
        playerSyncRequest = new GameObject("PlayerSyncRequest");                                        //在场景中创建游戏物体
        MoveRequest moveRequest = playerSyncRequest.AddComponent <MoveRequest>();                       //添加移动同步请求对象

        moveRequest.SetLocalPlayer(currentRoleGo.transform, currentRoleGo.GetComponent <PlayerMove>()); //告知移动同步对象,本地角色的位置信息
        moveRequest.SetRemotePlayer(remoteRoleGo.transform);                                            //设置敌对角色,用于接收到同步信息以后直接控制敌对角色移动
        shootRequest = playerSyncRequest.AddComponent <ShootRequest>();                                 //添加同步箭矢射击的请求对象
        shootRequest.playerManager = this;
        attackRequest = playerSyncRequest.AddComponent <AttackRequest>();                               //添加造成伤害的请求对象
    }
コード例 #2
0
    //创建同步请求
    public void CreatSyncRequest()
    {
        //1、创建同步位置的请求
        syncGo = new GameObject("PlayerSyncRequest");
        MoveRequest moveRequest = syncGo.AddComponent <MoveRequest>();

        //设置本地角色和远程角色
        moveRequest.SetLocalPlayer(currentRoleGo.transform, currentRoleGo.GetComponent <PlayerMove>());
        moveRequest.SetRemotePlayer(syncRoleGo.transform, syncRoleGo.GetComponent <Animator>());
        //开始位置同步
        moveRequest.StartSync();

        //2、箭的位置同步
        ShootRequest shootRequest = syncGo.AddComponent <ShootRequest>();

        shootRequest.SetRemoteArrow(roleDateDict[syncRoleType].ArrowPrefab);
        playerAttack.SetShootRequest(shootRequest);

        //3、伤害同步
        AttackRequest attackRequest = syncGo.AddComponent <AttackRequest>();

        playerAttack.SetAttckRequest(attackRequest);
    }