Exemple #1
0
        public GameObject GenerateHitBoxGameObject()
        {
            foreach (var hitbox in _hitboxInfo.HitBoxList)
            {
                var node = GetNode(hitbox.Name);
                node.transform.localEulerAngles = hitbox.Rotation;
                node.transform.localPosition    = hitbox.Position;
                if (hitbox.Scale.x != 0)
                {
                    node.transform.localScale = hitbox.Scale;
                }
            }

            // todo: delete
            GameObject coodTransformer = new GameObject("coodTransformer");

            _skeletonRoot.transform.parent          = coodTransformer.transform;
            coodTransformer.transform.localRotation = Quaternion.identity;

            GameObject wrapper = new GameObject("hitbox_" + _owerEntityKey);

            coodTransformer.transform.parent = wrapper.transform;

            DefaultGo.SetParentToDefaultGo(wrapper);

            return(wrapper);
        }
Exemple #2
0
            protected void HandleLoadedModel(PlayerEntity player, GameObject obj)
            {
                obj.layer = UnityLayerManager.GetLayerIndex(EUnityLayerName.Player);
                PlayerEntityUtility.DisableCollider(obj.transform);

                if (!player.hasCharacterContoller)
                {
                    var character = DefaultGo.CreateGameObject(player.entityKey.ToString());
                    character.layer = UnityLayerManager.GetLayerIndex(EUnityLayerName.Player);
                    CharacterController        cc  = PlayerEntityUtility.InitCharacterController(character);
                    KinematicCharacterMotor    kcc = PlayerEntityUtility.InitKinematicCharacterMotor(character);
                    CharacterControllerContext characterControllerContext = new CharacterControllerContext(
                        new UnityCharacterController(cc, !player.isFlagSelf),
                        new Core.CharacterController.ConcreteController.ProneCharacterController(kcc,
                                                                                                 new ProneController()),
                        new Core.CharacterController.ConcreteController.DiveCharacterController(kcc,
                                                                                                new DiveController()),
                        new Core.CharacterController.ConcreteController.SwimCharacterController(kcc,
                                                                                                new SwimController())
                        );


                    var curver = character.AddComponent <AirMoveCurve>();
                    curver.AireMoveCurve = SingletonManager.Get <CharacterStateConfigManager>().AirMoveCurve;
                    curver.MovementCurve = SingletonManager.Get <CharacterStateConfigManager>().MovementCurve;
                    curver.PostureCurve  = SingletonManager.Get <CharacterStateConfigManager>().PostureCurve;
                    if (character.GetComponent <EntityReference>() == null)
                    {
                        character.AddComponentUncheckRequireAndDisallowMulti <EntityReference>();
                    }
                    character.GetComponent <EntityReference>().Init(player.entityAdapter);
                    var comp = character.AddComponent <PlayerVehicleCollision>();
                    comp.AllContext = _contexts;

                    var appearanceManager = new AppearanceManager();


                    var characterControllerManager = new CharacterControllerManager();
                    characterControllerManager.SetCharacterController(characterControllerContext);


                    var characterBone = new CharacterBoneManager();
                    characterBone.SetWardrobeController(appearanceManager.GetWardrobeController());
                    characterBone.SetWeaponController(appearanceManager.GetController <WeaponController>());
                    var weaponController = appearanceManager.GetController <WeaponController>() as WeaponController;
                    if (null != weaponController)
                    {
                        weaponController.SetWeaponChangedCallBack(characterBone.CurrentWeaponChanged);
                        weaponController.SetCacheChangeAction(characterBone.CacheChangeCacheAction);
                    }
                    player.AddCharacterControllerInterface(characterControllerManager);
                    player.AddAppearanceInterface(appearanceManager);
                    player.AddCharacterContoller(characterControllerContext);
                    player.AddCharacterBoneInterface(characterBone);
                    player.AddRecycleableAsset(character);
                    player.AddPlayerGameState(PlayerLifeStateEnum.NullState);
                }
            }
        protected override void InitComponent(PlayerEntity player, IContexts contexts)
        {
            var character = DefaultGo.CreateGameObject(player.entityKey.ToString());

            character.layer = UnityLayerManager.GetLayerIndex(EUnityLayerName.Player);
            var cc  = PlayerEntityUtility.InitCharacterController(character);
            var kcc = PlayerEntityUtility.InitKinematicCharacterMotor(character);
            var characterControllerContext = new CharacterControllerContext(
                new UnityCharacterController(cc, ModelLoadHandler.InitActionWithOffset(), !player.isFlagSelf),
                new ProneCharacterController(kcc,
                                             new ProneController(), ModelLoadHandler.InitActionWithNoOffset()),
                new DiveCharacterController(kcc,
                                            new DiveController(), ModelLoadHandler.InitActionWithNoOffset()),
                new SwimCharacterController(kcc,
                                            new SwimController(), ModelLoadHandler.InitActionWithNoOffset())
                );


            var curver = character.AddComponent <AirMoveCurve>();

            curver.AireMoveCurve = SingletonManager.Get <CharacterStateConfigManager>().AirMoveCurve;

            character.AddComponent <EntityReference>();
            character.GetComponent <EntityReference>().Init(player.entityAdapter);
            var comp = character.AddComponent <PlayerVehicleCollision>();

            comp.AllContext = contexts as Contexts;

            var appearanceManager = new AppearanceManager();


            var characterControllerManager = new CharacterControllerManager();

            characterControllerManager.SetCharacterController(characterControllerContext);


            var characterBone = new CharacterBoneManager();

            characterBone.SetWardrobeController(appearanceManager.GetWardrobeController());
            characterBone.SetWeaponController(appearanceManager.GetController <NewWeaponController>());
            var weaponController = (NewWeaponController)appearanceManager.GetController <NewWeaponController>();

            if (null != weaponController)
            {
                weaponController.SetWeaponChangedCallBack(characterBone.CurrentP1WeaponChanged, characterBone.CurrentP3WeaponChanged);
                weaponController.SetWeaponOrAttachmentDeleteCallBack(characterBone.WeaponOrAttachmentDel);
                weaponController.SetWeaponOrAttachementAddCallBack(characterBone.WeaponOrAttachmentAdd);
                weaponController.SetCacheChangeAction(characterBone.CacheChangeCacheAction);
            }
            player.AddCharacterControllerInterface(characterControllerManager);
            player.AddAppearanceInterface(appearanceManager);
            player.AddCharacterContoller(characterControllerContext);
            player.AddCharacterBoneInterface(characterBone);
            player.AddPlayerGameState(PlayerLifeStateEnum.NullState);
            player.AddPlayerResource(character);
        }
Exemple #4
0
 public void Dispose()
 {
     SceneManager.sceneLoaded   -= SceneLoadedWrapper;
     SceneManager.sceneUnloaded -= SceneUnloadedWrapper;
     SceneLoaded      = null;
     SceneUnloaded    = null;
     GoLoaded         = null;
     AfterGoLoaded    = null;
     BeforeGoUnloaded = null;
     GoUnloaded       = null;
     DefaultGo.DisposeStreamGo();
 }
Exemple #5
0
    private void DoStart()
    {
        DefaultGo.SetStage(GameRunningStage.BattleClient, false);

        _logger.InfoFormat("DoStart");
        gameObject.AddComponent <VersionDisplay>();
        IUserCmdGenerator userCmd;

        if (!IsRobot)
        {
            userCmd = new UnityUserCmdGenerator();
        }
        else
        {
            userCmd = new RobotUserCmdGenerator(new DummyRobotUserCmdProvider());
        }

        gameObject.AddComponent <Luminosity.IO.InputManager>();
        var consoleCommands = gameObject.AddComponent <DeveloperConsoleCommands>();
        var pool            = gameObject.AddComponent <UnityGameObjectPool>();
        ClientContextInitilizer intializer =
            new ClientContextInitilizer(userCmd, pool, this, _assetLoader, TestUtility.TestToken);


        _clientRoom             = new ClientRoom(intializer);
        _clientRoom.AddCommand += (consoleCommands.RegisterFreeCommand);

        consoleCommands._handler        = _clientRoom;
        consoleCommands._EcsDebugHelper = _clientRoom;
        consoleCommands._contexts       = _clientRoom.Contexts;
        consoleCommands.RegisterOpenCallback(BlockAllInput);
        if (!SharedConfig.IsOffline)
        {
            _loginClient = new LoginClient(SingletonManager.Get <ClientFileSystemConfigManager>().BootConfig.BattleServer.IP,
                                           new NetworkPortInfo(SingletonManager.Get <ClientFileSystemConfigManager>().BootConfig.BattleServer.TcpPort,
                                                               SingletonManager.Get <ClientFileSystemConfigManager>().BootConfig.BattleServer.UdpPort),
                                           _clientRoom);
        }
        _isInit = true;
        GlobalProperties.Instance.Properties["serverIp"]    = SingletonManager.Get <ClientFileSystemConfigManager>().BootConfig.BattleServer.IP;
        GlobalProperties.Instance.Properties["tcpPort"]     = SingletonManager.Get <ClientFileSystemConfigManager>().BootConfig.BattleServer.TcpPort;
        GlobalProperties.Instance.Properties["token"]       = TestUtility.TestToken;
        GlobalProperties.Instance.Properties["CS"]          = "Client";
        GlobalProperties.Instance.Properties["mutilThread"] = SharedConfig.MutilThread;
        GlobalProperties.Instance.Properties["version"]     = Version.Instance.LocalVersion;
        GlobalProperties.Instance.Properties["asset"]       = Version.Instance.LocalAsset;
        GlobalProperties.Instance.Properties["isOffline"]   = SharedConfig.IsOffline;
    }
Exemple #6
0
            protected void HandleLoadedModel(PlayerEntity player, GameObject obj)
            {
                obj.layer = UnityLayers.PlayerLayer;
                PlayerEntityUtility.DisableCollider(obj.transform);

                if (!player.hasCharacterContoller)
                {
                    var character = DefaultGo.CreateGameObject(player.entityKey.ToString());
                    character.layer = UnityLayers.PlayerLayer;
                    CharacterController        cc  = PlayerEntityUtility.InitCharacterController(character);
                    KinematicCharacterMotor    kcc = PlayerEntityUtility.InitKinematicCharacterMotor(character);
                    CharacterControllerContext characterControllerContext = new CharacterControllerContext(
                        new UnityCharacterController(cc),
                        new Core.CharacterController.ConcreteController.ProneCharacterController(kcc,
                                                                                                 new ProneController()),
                        new Core.CharacterController.ConcreteController.DiveCharacterController(kcc,
                                                                                                new DiveController()),
                        new Core.CharacterController.ConcreteController.SwimCharacterController(kcc,
                                                                                                new SwimController())
                        );
                    player.AddCharacterContoller(characterControllerContext);

                    var curver = character.AddComponent <AirMoveCurve>();
                    curver.AireMoveCurve = SingletonManager.Get <CharacterStateConfigManager>().AirMoveCurve;

                    character.AddComponent <EntityReference>();
                    character.GetComponent <EntityReference>().Init(player.entityAdapter);
                    var comp = character.AddComponent <PlayerVehicleCollision>();
                    comp.Context = _playerContext;

                    var appearanceManager = new AppearanceManager();
                    player.AddAppearanceInterface(appearanceManager);

                    var characterControllerManager = new CharacterControllerManager();
                    characterControllerManager.SetCharacterController(characterControllerContext);
                    player.AddCharacterControllerInterface(characterControllerManager);

                    var characterBone = new CharacterBoneManager();
                    characterBone.SetWardrobeController(player.appearanceInterface.Appearance.GetWardrobeController());
                    characterBone.SetWeaponController(player.appearanceInterface.Appearance.GetWeaponController());
                    player.appearanceInterface.Appearance.GetWeaponController().SetWeaponChangedCallBack(characterBone.CurrentWeaponChanged);
                    player.appearanceInterface.Appearance.GetWeaponController().SetCacheChangeAction(characterBone.CacheChangeCacheAction);
                    player.AddCharacterBoneInterface(characterBone);

                    player.AddRecycleableAsset(character);
                }
            }
        public void CreateZoneTriggers(SpecialZone type, int layer)
        {
            var baseName = String.Format("Zone_{0}_Trigger", type);

            if (_zones.ContainsKey(type))
            {
                var zones = _zones[type];

                int count = zones.Count;
                for (int i = 0; i < count; ++i)
                {
                    var name   = String.Format("{0}_{1}", baseName, i);
                    var zoneGo = DefaultGo.CreateGameObject(name);
                    zoneGo.layer = layer;
                    var box  = zoneGo.AddComponent <BoxCollider>();
                    var zone = zones[i];
                    box.center    = zone.Center;
                    box.size      = zone.HalfSize * 2;
                    box.isTrigger = true;
                }
            }
        }
Exemple #8
0
    public void OnDestroy()
    {
        Debug.Log("OnDestroy");
        _logger.InfoFormat("Start Destroy...");
        _isDestroy = true;
        MyHttpServer.Stop();
        if (_loginClient != null)
        {
            _loginClient.Dispose();
        }

        _logger.InfoFormat("Login Client Disposed.");
        HallUtility.ClearAciton();

        _clientRoom.Dispose();
        DefaultGo.Clear(GameRunningStage.BattleClient);
        SingletonManager.Dispose();

#if UNITY_SOURCE_MODIFIED && !UNITY_EDITOR
        UnityProfiler.DisableProfiler();
#endif
        _logger.InfoFormat("Client Destroy Completed.");
    }