コード例 #1
0
ファイル: ActorCreater.cs プロジェクト: bsyx/knight
        public static ActorCreateRequest CreateActor(long rActorID, int rHeroID, System.Action <GameObject> rLoadCompleted = null)
        {
            var rHero = GameConfig.Instance.GetHero(rHeroID);

            if (rHero == null)
            {
                UtilTool.SafeExecute(rLoadCompleted, null);
                return(null);
            }

            var rAvatar = GameConfig.Instance.GetAvatar(rHero.AvatarID);

            if (rAvatar == null)
            {
                UtilTool.SafeExecute(rLoadCompleted, null);
                return(null);
            }

            var rRequest = new ActorCreateRequest()
            {
                Avatar = rAvatar, Hero = rHero
            };

            rRequest.Handler = CreateActor_Async(rRequest, rLoadCompleted);
            return(rRequest);
        }
コード例 #2
0
ファイル: Actor.Loader.cs プロジェクト: esboy1988/knight
        private static IEnumerator CreateActor_Async(ActorCreateRequest rCreateRequest)
        {
            var rAvatarRequest = AvatarAssetLoader.Instance.Load(rCreateRequest.actor.Avatar);

            yield return(rAvatarRequest.Coroutine);

            ExhibitActor rExhibitActor = new ExhibitActor();

            rExhibitActor.Actor              = rCreateRequest.actor;
            rExhibitActor.ActorGo            = rAvatarRequest.avatarGo;
            rExhibitActor.Actor.ExhibitActor = rExhibitActor;

            // 设置ActorGo的大小
            var rHero = rCreateRequest.actor.Hero;

            rExhibitActor.ActorGo.transform.localScale = new Vector3(rHero.Scale, rHero.Scale, rHero.Scale);

            // 添加角色控制器
            var rActorController = rCreateRequest.actor.ActorGo.ReceiveComponent <ActorController>();

            rActorController.Actor = rCreateRequest.actor;

            // 添加角色的技能管理器
            var rActorGamePlayMgr = rCreateRequest.actor.ActorGo.ReceiveComponent <ActorGamePlayManager>();

            rActorGamePlayMgr.Initialize(rCreateRequest.actor);

            UtilTool.SetLayer(rExhibitActor.ActorGo, "Actor", true);

            UtilTool.SafeExecute(rCreateRequest.loadCompleted, rExhibitActor.Actor);
        }
コード例 #3
0
ファイル: Actor.Loader.cs プロジェクト: esboy1988/knight
        public static ActorCreateRequest CreateActor(long rActorID, int rHeroID, System.Action <Actor> rLoadCompleted = null)
        {
            Hero rHero = GameConfig.Instance.GetHero(rHeroID);

            if (rHero == null)
            {
                UtilTool.SafeExecute(rLoadCompleted, null);
                return(null);
            }

            Avatar rAvatar = GameConfig.Instance.GetAvatar(rHero.AvatarID);

            if (rAvatar == null)
            {
                UtilTool.SafeExecute(rLoadCompleted, null);
                return(null);
            }

            Actor rActor = new Actor();

            rActor.Avatar = rAvatar;
            rActor.Hero   = rHero;

            var rCreateRequest = new ActorCreateRequest(rActor, rLoadCompleted);

            rCreateRequest.Start(CreateActor_Async(rCreateRequest));

            return(rCreateRequest);
        }
コード例 #4
0
ファイル: ActorCreater.cs プロジェクト: bsyx/knight
        private static async Task CreateActor_Async(ActorCreateRequest rActorCreateRequest, System.Action <GameObject> rLoadCompleted)
        {
            var rAvatarRequest = await AvatarAssetLoader.Instance.Load(rActorCreateRequest.Avatar.ABPath, rActorCreateRequest.Avatar.AssetName);

            rActorCreateRequest.ActorGo = rAvatarRequest.AvatarGo;

            // 设置ActorGo的大小
            rAvatarRequest.AvatarGo.transform.localScale = Vector3.one * rActorCreateRequest.Hero.Scale;

            UtilTool.SetLayer(rAvatarRequest.AvatarGo, "Actor", true);
            UtilTool.SafeExecute(rLoadCompleted, rAvatarRequest.AvatarGo);
        }
コード例 #5
0
        public ActorCreateResponse Create(ActorCreateRequest request)
        {
            ActorCreateResponse response;

            if (ModelState.IsValid)
            {
                response = _actorService.Create(request);
            }
            else
            {
                response = new ActorCreateResponse()
                {
                    ErrorMessage = "Model state not valid"
                };
            }

            return(response);
        }
コード例 #6
0
        public ActorCreateResponse Create(ActorCreateRequest request)
        {
            var response = new ActorCreateResponse();

            var repoActor = new en.Actor
            {
                FirstName  = request.FirstName,
                LastName   = request.LastName,
                LastUpdate = DateTime.Now
            };

            _session.Save(repoActor);

            response.Actor = new Actor()
            {
                Id         = repoActor.Id,
                FirstName  = repoActor.FirstName,
                LastName   = repoActor.LastName,
                LastUpdate = repoActor.LastUpdate
            };

            return(response);
        }