コード例 #1
0
ファイル: GameRoot.cs プロジェクト: GitHappy11/DarkGodByUnity
    //系统初始化
    private void Init()
    {
        //服务模块初始化
        NetSvc net = GetComponent <NetSvc>();

        net.InitSvc();
        ResSvc res = GetComponent <ResSvc>();

        res.InitSvc();
        AudioSvc audio = GetComponent <AudioSvc>();

        audio.InitSvc();
        TimeSys time = GetComponent <TimeSys>();

        time.InitSvc();

        //业务系统初始化
        LoginSys login = GetComponent <LoginSys>();

        login.InitSys();
        MainCitySys mainCity = GetComponent <MainCitySys>();

        mainCity.InitSys();
        TaskSys taskSys = GetComponent <TaskSys>();

        taskSys.InitSys();
        FuBenSys fuBenSys = GetComponent <FuBenSys>();

        fuBenSys.InitSys();
        BattleSys battleSys = GetComponent <BattleSys>();

        battleSys.InitSys();

        //进入登录场景并加载相应的UI
        login.EnterLogin();
    }
コード例 #2
0
 public override void InitSys()
 {
     base.InitSys();
     instance = this;
 }
コード例 #3
0
 public override void InitSys()
 {
     base.InitSys();
     Instance = this;
     PECommon.Log("Init BattleSys...");
 }
コード例 #4
0
 public virtual void StartFunction()
 {
     parent    = GameCanvasScript.instance.gameObject;
     boardUI   = GameCanvasScript.instance.transform;
     battlesys = BattleSys.instance;
 }
コード例 #5
0
ファイル: DeployPanel.cs プロジェクト: LynnPi/OF
 private void InitPanel()
 {
     BattleSys.ResetPlayerBattleShip();
     InitEnergy();
     GeneratePlayerShipListView();
 }
コード例 #6
0
ファイル: ShipDisplay.cs プロジェクト: LynnPi/OF
    private IEnumerator CastSkill(proto.UseSkill useSkill)
    {
        Skill skill = GetSkill(useSkill.partid);

        if (skill == null)
        {
            Debug.Log("skill is null");
            yield break;
        }
        ShowCast(skill);
        ClientSkill clientSkill = BattleSys.GetCommanderShip().GetSkillById(useSkill.skillid);

        // 范围攻击,只生成一个子弹
        if (skill.partType == SpellType.AOE)
        {
            List <BulletTarget> targetList = new List <BulletTarget>();
            for (int i = 0; i < useSkill.fireinfolist_size(); i++)
            {
                proto.PartFireInfo info   = useSkill.fireinfolist(i);
                TeamDisplay        target = BattleSceneDisplayManager.Instance.GetTeamDisplay(info.targetid);
                if (target == null)
                {
                    continue;
                }
                BulletTarget bulletTarget = new BulletTarget();
                bulletTarget.delayFrame = info.delayframe;
                bulletTarget.Target     = target;
                targetList.Add(bulletTarget);
            }
            ClientParts parts    = Team_.GetPartsByID(skill.partID);
            float       x        = (float)useSkill.posx / 10000f;
            float       y        = (float)useSkill.posy / 10000f;
            float       z        = (float)useSkill.posz / 10000f;
            Vector3     position = new Vector3(x, y, z);
            ShowBullet(parts, targetList, skill.partType, skill.attackPoint, skill.bulletPath, skill.hitEffect, position, clientSkill);
        }
        // 个体攻击,每个对象都生成子弹
        else
        {
            for (int i = 0; i < useSkill.fireinfolist_size(); i++)
            {
                proto.PartFireInfo info   = useSkill.fireinfolist(i);
                TeamDisplay        target = BattleSceneDisplayManager.Instance.GetTeamDisplay(info.targetid);
                if (target == null)
                {
                    continue;
                }
                List <BulletTarget> targetList   = new List <BulletTarget>();
                BulletTarget        bulletTarget = new BulletTarget();
                bulletTarget.delayFrame = info.delayframe;
                bulletTarget.Target     = target;
                targetList.Add(bulletTarget);
                ClientParts parts = Team_.GetPartsByID(skill.partID);
                ShowBullet(parts, targetList, skill.partType, skill.attackPoint, skill.bulletPath, skill.hitEffect, Vector3.zero, clientSkill);
            }
        }
        yield return(new WaitForSeconds(1.2f));

        for (int i = 0; i < SingEffectList_.Count; i++)
        {
            if (SingEffectList_[i] == null)
            {
                continue;
            }
            Destroy(SingEffectList_[i]);
        }
        SingEffectList_.Clear();
    }
コード例 #7
0
    void Start()
    {
        if (debugGame)
        {
            numberOfPlayers = 6;
            for (int i = 0; i < numberOfPlayers; i++)
            {
                playerclass[i] = playerClass.warrior;
            }
        }

        if (!debugGame)
        {
            for (int i = 0; i < numberOfPlayers; i++)
            {
                if (SingletonScript.playerClasses[i] == 0)
                {
                    playerclass[i] = playerClass.warrior;
                }
                if (SingletonScript.playerClasses[i] == 1)
                {
                    playerclass[i] = playerClass.mage;
                }
                if (SingletonScript.playerClasses[i] == 2)
                {
                    playerclass[i] = playerClass.rogue;
                }
            }
        }
        //battlesys = GetComponent<BattleSys>();
        battlesys            = BattleSys.instance;
        battlesys.maxPlayers = numberOfPlayers;
        for (int i = 0; i < numberOfPlayers; i++)
        {
            if (i == 0)
            {
                col = "red";
            }
            if (i == 1)
            {
                col = "blue";
            }
            if (i == 2)
            {
                col = "yellow";
            }
            if (i == 3)
            {
                col = "green";
            }
            if (i == 4)
            {
                col = "white";
            }
            if (i == 5)
            {
                col = "purple";
            }
            PlayerScript player = Instantiate(playerType, new Vector3(-4.5f - (float)i, 0.1f, 4.5f), Quaternion.Euler(90.0f, 0.0f, 180.0f));
            player.boardPosition = 0;
            battlesys.players[i] = player;
            switch (playerclass[i])
            {
            case playerClass.warrior: createWarrior(ref player); break;

            case playerClass.rogue: createRogue(ref player); break;

            case playerClass.mage: createMage(ref player); break;
            }
            player.currentHealth = player.maxHealth.Value();
            player.gold          = 10;
            player.gamename      = col;
            player.transform.SetParent(pos.transform.GetChild(0));
        }
    }
コード例 #8
0
ファイル: CameraManager.cs プロジェクト: LynnPi/OF
    /// <summary>
    /// 布阵相机协程
    /// </summary>
    /// <returns></returns>
    private IEnumerator DeployCameraThread()
    {
        // 相机开始移动
        //yield return new WaitForSeconds( 2f );
        MainCamera_.transform.position         = Vector3.zero;
        MainCamera_.transform.localEulerAngles = Vector3.zero;

        // 相机要指向的位置缓存
        int firstID  = 30000;
        int secondID = 40000;
        int thirdID  = 60000;

        Dictionary <int, Vector3> posList = new Dictionary <int, Vector3>();
        int shipCount = BattleSys.GetShipCount(false);

        for (int i = 0; i < shipCount; i++)
        {
            ClientShip cs = BattleSys.GetShipByIndex(false, i);
            if (cs.Reference.id == firstID || cs.Reference.id == secondID || cs.Reference.id == thirdID)
            {
                if (!posList.ContainsKey(cs.Reference.id))
                {
                    posList.Add(cs.Reference.id, cs.Position);
                }
            }
        }
        Animator animator = MainCamera.AddComponent <Animator>();

        animator.runtimeAnimatorController = Resources.Load("Camera/camera_control") as RuntimeAnimatorController;

        Vector3 pos;

        posList.TryGetValue(firstID, out pos);
        MainCamera_.transform.position        = pos;
        MainCamera.transform.position         = new Vector3(29.3f, 19.9f, -40.8f);
        MainCamera.transform.localEulerAngles = new Vector3(15, 315, 0);
        animator.SetTrigger("DeployCameraStep01");
        yield return(new WaitForSeconds(2.3f));

        posList.TryGetValue(secondID, out pos);
        MainCamera_.transform.position        = pos;
        MainCamera.transform.position         = new Vector3(38.3f, 4.3f, 49.7f);
        MainCamera.transform.localEulerAngles = new Vector3(-2.3f, 238.54f, 0);
        animator.SetTrigger("DeployCameraStep02");
        yield return(new WaitForSeconds(3.51f));

        posList.TryGetValue(thirdID, out pos);
        MainCamera_.transform.position        = pos;
        MainCamera.transform.position         = new Vector3(46.8f, 8.1f, -9.7f);
        MainCamera.transform.localEulerAngles = new Vector3(0, 258, 0);
        animator.SetTrigger("DeployCameraStep03");
        yield return(new WaitForSeconds(3.2f));

        // 显示敌人指挥中心信息
        StartCoroutine(PlayEffectOfMainEnemy(pos));
        yield return(new WaitForSeconds(2.1f));

        posList.Clear();

        // 得到相机和边线的z值差
        proto.BattlefieldReference reference = GlobalConfig.GetBattlefieldReferenceByID(BattleSys.NowMapID);
        if (reference == null)
        {
            yield break;
        }
        // 战场长度
        float length = reference.basearea_len + reference.deptharea_len + reference.deployarea_len;

        Vector3 position = new Vector3(DeployOriginPositionX, DeployOriginPositionY, -length - 23.8f);
        Vector3 angle    = new Vector3(DeployOriginRotationX, DeployOriginRotationY, DeployOriginRotationZ);

        // 初始化基地区域相机属性
        CameraInfo info = GetCameraInfo(CameraStatusType.DeployMoveToBase);

        info.position = position + new Vector3(0, 0, length - reference.basearea_len / 2);
        info.angles   = angle;
        // 初始化布阵区域相机属性
        info          = GetCameraInfo(CameraStatusType.DeployMoveToDeploy);
        info.position = position;
        info.angles   = angle;
        // 设置相机位置和旋转
        MainCamera.transform.position          = Vector3.zero;
        MainCamera.transform.localEulerAngles  = Vector3.zero;
        MainCamera_.transform.position         = position;
        MainCamera_.transform.localEulerAngles = angle;
        animator.SetTrigger("DeployCameraStep04");
        yield return(new WaitForSeconds(2));

        Destroy(animator);

        // 移动完毕,修改模式为可操作模式
        SetCameraType(CameraStatusType.Deploy);
        // 显示布阵界面
        UIManager.ShowPanel <DeployPanel>();
        UIManager.ShowPanel <DeployCameraControl>();
        // 开启相机线程
        StartCoroutine(CameraThread(null));
    }
コード例 #9
0
 private void Awake()
 {
     instance = this;
 }