Exemple #1
0
        void PrepareStepBuildRPC(WorldObj.SoldierType _soldierType, WorldObj.Nationality _nationality)
        {
            if (!cityController)
            {
                Debug.Log("组件cityController没找到!");
            }
            //初始化刚开始建造的模型
            GameObject _newTeam = cityController.newTeam;

            if (_newTeam)
            {
                TeamObj newTeamObj = _newTeam.GetComponent <TeamObj>();
                //锁住被建队伍模型的动画和隐藏他的血条
                LockUnLockBuildingTeam(newTeamObj, true);
            }
            else
            {
                return;
            }

            switch (_soldierType)
            {
            case WorldObj.SoldierType.Tank:
                Transform model = null;
                switch (_nationality)
                {
                case WorldObj.Nationality.red:
                    model = _newTeam.transform.Find("Tank_Red");
                    break;

                case WorldObj.Nationality.blue:
                    model = _newTeam.transform.Find("Tank_Blue");
                    break;

                case WorldObj.Nationality.monster:
                    break;

                default:
                    break;
                }
                //激活基础配件
                cityController.SetActiveParts(model, new string[] { "Cylinder020", "Object031" });
                break;

            default:
                break;
            }
        }
Exemple #2
0
        void SpawnMonsterObjectsRPC(WorldObj.Nationality _nationality, int _soldiernumber, WorldObj.SoldierType _soldiertype, int _teamMorola, int _viewId, int _viewIdModel)
        {
            //计算出野怪位置
            Vector3 GriffinPosition = Vector3.zero;

            switch (_soldiertype)
            {
            case SoldierType.Griffin:
                bool rightposition = false;
                while (!rightposition)
                {
                    GriffinPosition = RandomPosition();
                    rightposition   = true;
                    for (int j = 0; j < citiespositions.Count; j++)
                    {
                        if (Vector3.Distance(citiespositions[j], GriffinPosition) < 2f)
                        {
                            rightposition = false;
                            break;
                        }
                    }
                }

                break;

            default:
                break;
            }
            GameObject newMonster = Instantiate(team, GriffinPosition, Quaternion.identity);

            newMonster.GetComponent <PhotonView>().viewID = _viewId;
            //给新派生的队伍对象赋值
            TeamObj teamObj = newMonster.GetComponent <TeamObj>();

            teamObj.nationality   = _nationality;
            teamObj.soldiernumber = _soldiernumber;
            teamObj.soldiertype   = _soldiertype;
            teamObj.hero          = "";
            teamObj.teamspeed     = WorldObj.BeginTeamSpeed;
            teamObj.teammorale    = WorldObj.BeginTeamMorale;
            //根据士兵类型激活队伍模型
            Transform teamModel = null;

            switch (teamObj.soldiertype)
            {
            case WorldObj.SoldierType.Griffin:
                teamModel = teamObj.transform.Find("Griffin_Yellow");
                break;
            }
            if (teamModel)
            {
                //激活队伍模型
                teamModel.gameObject.SetActive(true);
                //手动分配队伍模型的PhotonViewID
                teamModel.GetComponent <PhotonView>().viewID = _viewIdModel;
            }

            //使其不可见
            Funcs.ChangeObjectAlphaValue(teamObj.teamHealthCanvas, 0f);
            Funcs.ChangeObjectAlphaValue(teamObj.transform, 0f);
        }