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); }
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); }
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); }
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); }
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); }
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); }