コード例 #1
0
        private static async ETVoid CreateTargetArrow(Vector3 InitPos, PlayerCube playerCube, VariableJoystickComponent AttackUI, ETTaskCompletionSource <TargetArrow> tcs)
        {
            try
            {
                //创建一个TargetArrow的3D物体
                GameObject resObj = await ETModel.Game.Scene.GetComponent <ResourcesAsyncComponent>().LoadAssetAsync <GameObject>(Assets.LoadAssetAsync("Assets/Bundles/Prefab/TargetArrow.prefab", typeof(GameObject)));

                ReferenceCollector rc             = resObj.GetComponent <ReferenceCollector>();
                GameObject         targetArrowObj = GameObject.Instantiate <GameObject>(rc.Get <GameObject>("TargetArrow"));
                targetArrowObj.transform.position = InitPos;

                //创建TargetArrow实体脚本
                TargetArrow targetArrow = ComponentFactory.Create <TargetArrow, GameObject>(targetArrowObj, false);

                //添加控制组件
                targetArrow.AddComponent <TargetArrowComponent, PlayerCube, VariableJoystickComponent>(playerCube, AttackUI);


                tcs.SetResult(targetArrow);
            }
            catch (Exception e)
            {
                Log.Error(e);
                tcs.SetResult(null);
            }
        }
コード例 #2
0
        private static async ETVoid CreatePlayerCube(Vector3 InitPos, ETTaskCompletionSource <PlayerCube> tcs)
        {
            try
            {
                //创建一个cube角色的3D物体
                GameObject resObj = await ETModel.Game.Scene.GetComponent <ResourcesAsyncComponent>().LoadAssetAsync <GameObject>(Assets.LoadAssetAsync("Assets/Bundles/Prefab/PlayerCube.prefab", typeof(GameObject)));

                ReferenceCollector rc            = resObj.GetComponent <ReferenceCollector>();
                GameObject         playerCubeObj = GameObject.Instantiate <GameObject>(rc.Get <GameObject>("PlayerCube"));
                playerCubeObj.transform.position = InitPos;

                //创建cube角色实体脚本
                PlayerCube playerCube = ComponentFactory.Create <PlayerCube, GameObject>(playerCubeObj, false);

                //创建控制UI
                UI ui = await UIJoystickFactory.Create();

                Game.Scene.GetComponent <UIComponent>().Add(ui);

                //添加控制组件
                PlayerCubeControllerComponent playerCubeControllerComponent = playerCube.AddComponent <PlayerCubeControllerComponent, UI>(ui);

                //创建准星控制UI
                UI AttackUI = await UIAttackDirstickFactory.Create();

                Game.Scene.GetComponent <UIComponent>().Add(AttackUI);

                //创建准星3D物品
                TargetArrow targetArrow = await TargetArrowFactory.Create(Vector3.zero, playerCube, AttackUI);

                //管理准星与cube
                playerCubeControllerComponent.targetArrow = targetArrow;

                //添加攻击脚本
                playerCube.AddComponent <PlayerCubeAttackComponent>();

                //添加生命值信息UI
                playerCube.AddComponent <PlayerCubeHealthComponent>();

                //添加攻击伤害同步脚本
                playerCube.AddComponent <HurtSyncComponent>();

                tcs.SetResult(playerCube);
            }
            catch (Exception e)
            {
                Log.Error(e);
                tcs.SetResult(null);
            }
        }