Beispiel #1
0
        public async void loadBuffData()
        {
            string jsonString = (await AssetManager.LoadAssetAsync <TextAsset>("BuffMap")).text;

            buffDataDict = Tools.Json2Obj <Dictionary <string, BuffData> >(jsonString);
            buffDataList = buffDataDict.Values.ToList();
        }
Beispiel #2
0
        public async void InitAnimEffect()
        {
            animEffectDataDic.Clear();
            var animEffectSaveDataAsset = await AssetManager.LoadAssetAsync <AnimEffectSaveDataAsset>(animEffectSaveDataPath);

            if (animEffectSaveDataAsset != null)
            {
                if (animEffectSaveDataAsset != null && animEffectSaveDataAsset.animEffectDataList != null)
                {
                    foreach (var item in animEffectSaveDataAsset.animEffectDataList)
                    {
                        if (animEffectDataDic.ContainsKey(item.id))
                        {
                            animEffectDataDic.Remove(item.id);
                        }
                        animEffectDataDic.Add(item.id.ToLower(), item);
                    }
                }
            }
            else
            {
//                var animEffectSaveData = await AssetManager.LoadJson<AnimEffectSaveData>(animEffectSaveDataFileName);

                var animEffectSaveData = Tools.Load <AnimEffectSaveData>(animEffectSaveDataFileName);
                if (animEffectSaveData != null && animEffectSaveData.animEffectDataList != null)
                {
                    foreach (var item in animEffectSaveData.animEffectDataList)
                    {
                        animEffectDataDic.Add(item.id.ToLower(), item);
                    }
                }
            }
        }
Beispiel #3
0
        public async void loadTagTriggerList()
        {
            tagTriggerListData = await AssetManager.LoadAssetAsync <TagTriggerListData>(TagTirggerListDataPath);

            if (tagTriggerListData != null && tagTriggerListData.TagList != null && tagTriggerListData.tagTriggerBoolList != null)
            {
                int co = tagTriggerListData.TagList.Count;
                TagTirggerList = new bool[co, co];
                for (int t = 0; t < tagTriggerListData.tagTriggerBoolList.Count; t++)
                {
                    for (int xt = 0; xt < tagTriggerListData.tagTriggerBoolList[t].list.Count; xt++)
                    {
                        TagTirggerList[t, xt] = tagTriggerListData.tagTriggerBoolList[t].list[xt];
                    }
                }
                taglist = tagTriggerListData.TagList;
            }
            else
            {
                string jsonString = Tools.ReadStringFromFile(Application.dataPath + "/" + TagTirggerListPath);
                TagTirggerList = Tools.Json2Obj <bool[, ]>(jsonString);
                string jsonlist = Tools.ReadStringFromFile(Application.dataPath + "/" + path + "TagList.json");
                taglist = Tools.Json2Obj <List <string> >(jsonlist);
            }
        }
Beispiel #4
0
        private async void SetPlayer1SoulIcon(object[] objects)
        {
            string value = (string)objects[0];

            if (!string.IsNullOrEmpty(value))
            {
                var     tex     = AssetManager.LoadAssetAsync <Texture>("Assets/Resources_moved/Textures/Icon/" + value + ".png");
                Texture texture = await tex;
                image_soul.texture = new NTexture(texture);
            }
        }
Beispiel #5
0
        private static async void LoadJson()
        {
            var AudioIDTask      = AssetManager.LoadAssetAsync <TextAsset>("AttackAudio");
            var AudioIDTextAsset = await AudioIDTask;

            AudioIDDic = Tools.Json2Obj <Dictionary <string, string> >(AudioIDTextAsset.text);

            var AudioNameTask      = AssetManager.LoadAssetAsync <TextAsset>("AudioName");
            var AudioNameTextAsset = await AudioNameTask;

            AudioNameDic = Tools.Json2Obj <Dictionary <string, AudioAttackName> >(AudioNameTextAsset.text);
        }
Beispiel #6
0
        //
        public Task <GameObject> GetPrefab(string name)
        {
            name = name.ToLower(); // 转为小写 add by TangJian 2018/11/29 23:19

            string prefabPath;

            if (prefabPathDic.TryGetValue(name, out prefabPath))
            {
                return(AssetManager.LoadAssetAsync <GameObject>(prefabPath));
            }

            Debug.LogError("找不到预制体: " + name);
            return(null);
        }
Beispiel #7
0
        public async void PlayEffect(string key, Vector3 worldPos)
        {
            GameObject musicPlayer = await AssetManager.SpawnAsync("Music/MusicPlayer.prefab");

            musicPlayer.transform.position = worldPos;

            AudioSource audioSource = musicPlayer.GetComponent <AudioSource>();
            var         clip        = await AssetManager.LoadAssetAsync <AudioClip>("Music/" + key + ".WAV");

            audioSource.PlayOneShot(clip);

            musicPlayer.DoDelay(clip.length).OnComplete(() =>
            {
                AssetManager.DeSpawn(musicPlayer);
            });
        }
Beispiel #8
0
        public async void NewAnimation(GameObject Rander, SkillData skillData)
        {
            GameObject Animation = Rander.GetChild("Animation", true);

            Spine.Unity.SkeletonAnimation skeletonAnimation = Animation.AddComponent <Spine.Unity.SkeletonAnimation>();
            skeletonAnimation.skeletonDataAsset = await AssetManager.LoadAssetAsync <Spine.Unity.SkeletonDataAsset>(skillData.SkeletonDataAssetPath);

            var skeletonAnimationRenderer = skeletonAnimation.GetComponent <Renderer>();

            skeletonAnimationRenderer.enabled = false;
            DelayFunc(() =>
            {
                skeletonAnimationRenderer.enabled = true;
            }, 0.00001f);
            skeletonAnimation.initialSkinName = skillData.SkinName;
            skeletonAnimation.Initialize(true);
            Spine.TrackEntry TrackEntry = skeletonAnimation.state.SetAnimation(0, skillData.AnimationName, true);
            Animation.AddComponent <SortRenderer>();
        }
Beispiel #9
0
        async void load()
        {
            SkillManagerDataAsset = await AssetManager.LoadAssetAsync <SkillManagerDataAsset>(skillDataAssetFile);

            string textString = (await AssetManager.LoadAssetAsync <TextAsset>("SkillDatas")).text;

            skillListSaveDataDic = Tools.Json2Obj <Dictionary <string, SkillListSaveData> >(textString);
            if (SkillManagerDataAsset != null && SkillManagerDataAsset.skillListSaveDatas.Count != 0)
            {
                skillDataMap = SkillManagerDataAsset.skillListSaveDatas.ToDictionary(item => item.id.ToLower(), item => item);
            }
            else
            {
                string jsonString = Tools.ReadStringFromFile(Application.dataPath + "/" + "Resources_moved/Scripts/Skill/Skill.json");
                skillDataMap = Tools.Json2Obj <Dictionary <string, SkillData> >(jsonString).ToDictionary(pair => pair.Key.ToLower(), pair => pair.Value);
            }

            var a = 1;
            //skillListSaveDataDic = Tools.getObjectFromResource<Dictionary<string, SkillListSaveData>>("Scripts/Skill/SkillList");
        }
Beispiel #10
0
        public async void playEffectAnim(string animName, Vector3 position, float rotation = 0.0f)
        {
            GameObject ins =
                await AssetManager.LoadAssetAsync <GameObject>(
                    "Aeests/Resources_moved/Prefabs/Effect/RoleEffectAnim.prefab");

            var roleEffectAnim = Instantiate(ins);
            var roleEffectSkeletonAnimation = roleEffectAnim.GetComponent <SkeletonAnimation>();

            roleEffectSkeletonAnimation.skeleton.SetToSetupPose();

            roleEffectSkeletonAnimation.state.SetAnimation(0, animName, false);

            Destroy(roleEffectAnim, 0.5f);

            // 旋转 add by TangJian 2017/08/25 17:50:30
            roleEffectAnim.transform.eulerAngles = new Vector3(0, 0, rotation);

            roleEffectSkeletonAnimation.transform.parent   = transform.parent;
            roleEffectSkeletonAnimation.transform.position = position;
        }
Beispiel #11
0
        public async Task <GameObject> PlayAnim(string animId, string animPath, string animName, bool loop, Vector3 position, float scale = 1f)
        {
            GameObject InstantiateSpecialEffect = new GameObject();

            InstantiateSpecialEffect.SetActive(false);

            InstantiateSpecialEffect.transform.position = position;
            InstantiateSpecialEffect.AddComponentUnique <SortRenderer>();
            SkeletonAnimation skeletonAnimation = InstantiateSpecialEffect.AddComponentUnique <SkeletonAnimation>();

            skeletonAnimation.skeletonDataAsset =
                await AssetManager.LoadAssetAsync <SkeletonDataAsset>(animPath);

            skeletonAnimation.Initialize(false);

            skeletonAnimation.state.SetAnimation(0, animName, loop);

            InstantiateSpecialEffect.transform.localScale = new Vector3(scale, scale, scale);

            InstantiateSpecialEffect.SetActive(true);
            return(InstantiateSpecialEffect);
        }
Beispiel #12
0
        public async Task NewAnim(GameObject anim, SkillData skillData)
        {
            Animator animator = anim.GetComponent <Animator>();

            Spine.Unity.SkeletonAnimator skeletonAnimator = anim.GetComponent <Spine.Unity.SkeletonAnimator>();

            var skeletonAnimatorRenderer = skeletonAnimator.GetComponent <Renderer>();

            skeletonAnimatorRenderer.enabled = false;
            DelayFunc(() =>
            {
                skeletonAnimatorRenderer.enabled = true;
            }, 0.00001f);

            animator.runtimeAnimatorController =
                await AssetManager.LoadAssetAsync <RuntimeAnimatorController>(skillData.AnimControllerPath);

            skeletonAnimator.skeletonDataAsset =
                await AssetManager.LoadAssetAsync <Spine.Unity.SkeletonDataAsset>(skillData.SkeletonDataAssetPath);

            skeletonAnimator.initialSkinName = skillData.SkinName;
            skeletonAnimator.Initialize(true);
        }
Beispiel #13
0
 public async void loadPlacementData()
 {
     roleDataDict = Tools.Json2Obj <Dictionary <string, tian.PlacementData> >((await AssetManager.LoadAssetAsync <TextAsset>("PlacementDatas")).text);
 }
Beispiel #14
0
 private static async void GetAsset()
 {
     s_DropItemsDataAsset =
         await AssetManager.LoadAssetAsync <DropItemsDataAsset>("Manager/DropItemsDataAsset.asset");
 }
Beispiel #15
0
        public async override void Start()
        {
            base.Start();

            if (ItemData.renderType == RenderType.Image)
            {
                gameObject.layer = LayerMask.NameToLayer("CollideWithGround");
                bool sdsa     = true;
                var  itemData = ItemManager.Instance.getItemDataById <ItemData>(ItemId);
                mainRigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
                if (ItemData.itemType == ItemType.Equip)
                {
                    sdsa = false;
                    var itemDatad = ItemManager.Instance.getItemDataById <EquipData>(ItemId);
                    if (itemDatad.imgGround == ImgGround.ground)
                    {
                        Texture2D texture = await AssetManager.LoadAssetAsync <Texture2D>(Definition.TextureAssetPrefix + "Icon/" + itemDatad.groundImgId + ".png");

                        Texture2D    texture2d    = texture;
                        float        width        = texture2d.width / 100f;
                        float        height       = texture2d.height / 100f;
                        MeshFilter   meshFilter   = gameObject.GetChild("Renderer").GetComponentInChildren <MeshFilter>();
                        MeshRenderer meshRenderer = gameObject.GetChild("Renderer").GetComponentInChildren <MeshRenderer>();
                        Material     blackMaterial;
                        // 初始化mesh uv 等add by TangJian 2017/12/20 17:04:45
                        {
                            // Shader shader = Shader.Find("Custom/Unlit/Transparent");
                            // Shader shader = Shader.Find("Spine/W_Sprite");
                            Shader shader = Shader.Find("Custom/Unlit/Transparent");

                            {
                                Mesh mesh = new Mesh();

                                // 为网格创建顶点数组
                                Vector3[] vertices = new Vector3[4]
                                {
                                    new Vector3(width / 2, 0.1f, (height * (float)System.Math.Sqrt(3)) / 2),
                                    new Vector3(-width / 2, 0.1f, (height * (float)System.Math.Sqrt(3)) / 2),
                                    new Vector3(width / 2, 0.1f, (-height * (float)System.Math.Sqrt(3)) / 2),
                                    new Vector3(-width / 2, 0.1f, (-height * (float)System.Math.Sqrt(3)) / 2)
                                };

                                // for (int i = 0; i < vertices.Length; i++)
                                // {
                                //     vertices[i].y += height / 2;
                                // }

                                mesh.vertices = vertices;

                                // 通过顶点为网格创建三角形
                                int[] triangles = new int[2 * 3] {
                                    0, 3, 1, 0, 2, 3
                                };
                                mesh.triangles = triangles;

                                mesh.uv = new Vector2[] {
                                    new Vector2(1, 1),
                                    new Vector2(0, 1),
                                    new Vector2(1, 0),
                                    new Vector2(0, 0)
                                };
                                meshFilter.mesh = mesh;
                            }
                            Material material = new Material(shader);
                            material.mainTexture = texture;
                            material.renderQueue = 3000;

                            material.SetFloat("_ZTest", (float)UnityEngine.Rendering.CompareFunction.LessEqual);
                            material.SetFloat("_ZWrite", 1);

                            meshRenderer.sortingOrder = 0;
                            meshRenderer.material     = material;
                            // meshRenderer.material.color=Color.black;
                            blackMaterial = material;
                        }

                        // 根据渲染设置碰撞区域 add by TangJian 2017/11/18 17:32:18
                        {
                            BoxCollider boxCollider = gameObject.GetComponent <BoxCollider>();

                            Bounds bounds = new Bounds(gameObject.transform.position, Vector3.zero);
                            bounds.Encapsulate(meshRenderer.bounds);
                            bounds.center = gameObject.transform.InverseTransformPoint(bounds.center);

                            boxCollider.center = new Vector3(0, 0.5f, 0);;
                            boxCollider.size   = new Vector3(bounds.size.x, 1f, bounds.size.z);

                            boxCollider.enabled = true;

                            BoxCollider InteractBoxCollider = gameObject.GetChild("Interact").GetComponent <BoxCollider>();
                            InteractBoxCollider.center = boxCollider.center;
                            InteractBoxCollider.size   = boxCollider.size + new Vector3(1, 1, 1);
                        }

                        float scale = 1.25f;

                        gameObject.transform.localScale = new Vector3(1, 1, 1) * scale;

                        // 影子设置 add by TangJian 2017/12/20 15:44:55
                        // {
                        //     BoxCollider boxCollider = gameObject.GetComponent<BoxCollider>();

                        GameObject shadow = gameObject.GetChild("Shadow");
                        shadow.SetActive(false);

                        // ShadowProjector shadowProjector=shadow.GetComponent<ShadowProjector>();
                        // shadowProjector._Material=blackMaterial;
                        // shadowProjector.UVRect=new Rect(0f,0.5f,0.5f,0.5f);
                        // Bounds blackbound = new Bounds(gameObject.transform.position, Vector3.zero);
                        // blackbound.Encapsulate(meshRenderer.bounds);
                        // blackbound.center = gameObject.transform.InverseTransformPoint(blackbound.center);

                        // shadowProjector.UVRect=new Rect(0f,0.5f,0.5f,0.5f);


                        // shadowProjector.AutoSizeOpacity=true;
                        // shadowProjector.AutoSOMaxScaleMultiplier=0.5f;
                        // shadowProjector.ShadowSize = blackbound.size.x;
                        // ShadowProjector shadowProjector = shadow.GetComponent<ShadowProjector>();
                        // shadow.transform.localPosition = new Vector3(0, 0, 0);
                        // Projector Projector=shadow.GetComponent<Projector>();
                        // blackMaterial.color=Color.black;
                        // Projector.material=blackMaterial;
                        //     shadowController.shadowSize = boxCollider.size.x * gameObject.transform.localScale.x;
                        //     shadowController.shadowSize *= 0.6f;
                        // }
                    }
                    else
                    {
                        sdsa = true;
                    }
                }
                if (itemData.icon.IsValid() && sdsa)
                {
                    Texture2D texture = await AssetManager.LoadAssetAsync <Texture2D>(Definition.TextureAssetPrefix + "Icon/" + itemData.icon + ".png");

                    float width  = texture.width / 100f;
                    float height = texture.height / 100f;

                    MeshFilter   meshFilter   = gameObject.GetChild("Renderer", true).GetComponentInChildren <MeshFilter>();
                    MeshRenderer meshRenderer = gameObject.GetChild("Renderer", true).GetComponentInChildren <MeshRenderer>();
                    gameObject.GetChild("Renderer").AddComponent <SortRenderer>();
                    // 初始化mesh uv 等add by TangJian 2017/12/20 17:04:45
                    {
                        // Shader shader = Shader.Find("Custom/Unlit/Transparent");
                        // Shader shader = Shader.Find("Spine/W_Sprite");
                        Shader shader = Shader.Find("Custom/Unlit/Transparent");

                        {
                            Mesh mesh = new Mesh();

                            // 为网格创建顶点数组
                            Vector3[] vertices = new Vector3[4] {
                                new Vector3(width / 2, height / 2, 0),
                                new Vector3(-width / 2, height / 2, 0),
                                new Vector3(width / 2, -height / 2, 0),
                                new Vector3(-width / 2, -height / 2, 0)
                            };

                            for (int i = 0; i < vertices.Length; i++)
                            {
                                vertices[i].y += height / 2;
                            }

                            mesh.vertices = vertices;

                            // 通过顶点为网格创建三角形
                            int[] triangles = new int[2 * 3] {
                                0, 3, 1, 0, 2, 3
                            };
                            mesh.triangles = triangles;

                            mesh.uv = new Vector2[] {
                                new Vector2(1, 1),
                                new Vector2(0, 1),
                                new Vector2(1, 0),
                                new Vector2(0, 0)
                            };
                            meshFilter.mesh = mesh;
                        }
                        Material material = new Material(shader);
                        material.mainTexture = texture;
                        material.renderQueue = 3000;

                        material.SetFloat("_Cutoff", 0.2f);
                        material.SetFloat("_ZTest", (float)UnityEngine.Rendering.CompareFunction.LessEqual);
                        material.SetFloat("_ZWrite", 1);
                        //material.SetFloat("_ZTest", 1);

                        meshRenderer.material = material;
                    }

                    // 根据渲染设置碰撞区域 add by TangJian 2017/11/18 17:32:18
                    {
                        BoxCollider boxCollider = gameObject.GetComponent <BoxCollider>();

                        Bounds bounds = new Bounds(gameObject.transform.position, Vector3.zero);
                        bounds.Encapsulate(meshRenderer.bounds);
                        bounds.center = gameObject.transform.InverseTransformPoint(bounds.center);

                        boxCollider.center = bounds.center;
                        boxCollider.size   = bounds.size;

                        BoxCollider InteractBoxCollider = gameObject.GetChild("Interact").GetComponent <BoxCollider>();
                        InteractBoxCollider.center = boxCollider.center;
                        InteractBoxCollider.size   = boxCollider.size + new Vector3(1, 1, 1);
                    }

                    float scale = 1.25f;

                    gameObject.transform.localScale = new Vector3(1, 1, 1) * scale;

                    // 影子设置 add by TangJian 2017/12/20 15:44:55
                    {
                        // BoxCollider boxCollider = gameObject.GetComponent<BoxCollider>();

                        GameObject      shadow          = gameObject.GetChild("Shadow");
                        ShadowProjector shadowProjector = shadow.GetComponent <ShadowProjector>();
                        // shadowProjector.UVRect=new Rect(0f,0.5f,0.5f,0.5f);

                        // shadowProjector.UVRect=new Rect(0f,0.5f,0.5f,0.5f);
                        // Material material=(Material)UnityEditor.AssetDatabase.LoadAssetAtPath("Assets/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat",typeof(Material));
                        // shadowProjector._Material=material;

                        // shadowProjector.AutoSizeOpacity=true;
                        // shadowProjector.AutoSOMaxScaleMultiplier=0.5f;
                        shadowProjector.ShadowSize = width * 0.6f;
                        // shadowProjector.AutoSizeOpacity=true;
                        // shadowProjector.AutoSOMaxScaleMultiplier=0.5f;
                        // ShadowController shadowController = shadow.GetComponent<ShadowController>();
                        // shadow.transform.localPosition = new Vector3(0, 0, 0);
                        // shadowController.shadowSize = boxCollider.size.x * gameObject.transform.localScale.x;
                        // shadowController.shadowSize *= 0.6f;
                    }
                }

                if (animSequence == null && sdsa)
                {
                    animSequence = DOTween.Sequence();
                    // 播放动画 add by TangJian 2017/12/25 15:43:55
                    animSequence.Append(gameObject.GetChild("Renderer").transform.DOLocalMoveY(0.2f, 2f));
                    animSequence.Append(gameObject.GetChild("Renderer").transform.DOLocalMoveY(0f, 2f)).OnComplete(() =>
                    {
                        animSequence.Restart();
                    });
                }
            }
            else if (ItemData.renderType == RenderType.Anim)
            {
                GameObject animObject = gameObject.GetChild("Renderer").GetChild("anim", true);
                _skeletonAnimation = animObject.AddComponentIfNone <SkeletonAnimation>();
                _skeletonAnimation.skeletonDataAsset = await AssetManager.LoadAssetAsync <SkeletonDataAsset>(ItemData.anim);

                _skeletonAnimation.Initialize(true);
                _skeletonAnimation.state.SetAnimation(0, itemData.idleAnim, true);
//                _functionPool.AddFunc(() =>
//                {
//                    if (_skeletonAnimation != null && _skeletonAnimation.state != null)
//                    {
//                        _skeletonAnimation.state.SetAnimation(0, itemData.idleAnim, true);
//                        return true;
//                    }
//
//                    return false;
//                });
            }

            InitPickUpMethod();
        }
Beispiel #16
0
 private async void GetDropItem()
 {
     dropItem = await AssetManager.LoadAssetAsync <GameObject>("Assets/Resources_moved/Prefabs/DropItem/DropItem.prefab");
 }
Beispiel #17
0
        public async Task<SceneController> CreateScene(SceneData sceneData, int difficultyLevel = 1)
        {
            // 新建场景
            GameObject prefab = await AssetManager.LoadAssetAsync<GameObject>("Assets/Resources_moved/Prefabs/Scenes/" + sceneData.rawSceneId+".prefab");
            Debug.Assert(prefab != null, "找不到场景预制体:" + "Prefabs / Scenes / " + sceneData.rawSceneId);
            GameObject scene = Instantiate(prefab);

            // Debug.Log(" 预制体id " + sceneData.rawSceneId);
            scene.transform.parent = SceneRoot.transform;
            scene.transform.localPosition = GetOnlyScenePosition();
            scene.name = sceneData.sceneId;
            SceneController sceneController = scene.GetComponent<SceneController>();
            sceneController.SceneData = sceneData;

            {
                // 添加怪物 add by TangJian 2017/08/03 21:35:51
                {
                    foreach (var roleData in sceneData.roleDatas)
                    {
                        roleData.locationData.position = sceneController.GetAreaRandomPosition(roleData.locationData.areaId);
                        roleData.difficultyLevel = difficultyLevel;
                        sceneController.AddRole(roleData);
                    }
                }

                // 添加物品 add by TangJian 2017/08/22 19:45:51
                {
                    foreach (var itemData in sceneData.itemDatas)
                    {
                        var item = GameObjectManager.Instance.Create(itemData.id);
                        DropItemController dropItemController = item.GetComponent<DropItemController>();
                        itemData.position = sceneController.GetAreaRandomPosition("MonsterAreas");
                        sceneController.DropItemEnterWithLocalPosition(dropItemController, itemData.position);
                    }
                }

                // 添加放置物体 add by TangJian 2018/01/23 15:52:08
                {
                    foreach (var placementData in sceneData.PlacementDatas)
                    {
                        var placementObject = GameObjectManager.Instance.Create(placementData.id);
                        SceneObjectController sceneObjectController = placementObject.GetComponent<SceneObjectController>();
                        
                        PlacementController treasureBoxController = placementObject.GetComponent<PlacementController>();
                        treasureBoxController.Placementdata = placementData;

                        placementData.position = sceneController.GetAreaRandomPosition("MonsterAreas");
                        sceneController.PlacementEnterWithLocalPosition(sceneObjectController, placementData.position);

                        ScenePlacementComponent sceneComponent = treasureBoxController.gameObject.GetComponent<ScenePlacementComponent>();
                        if (sceneComponent != null)
                        {
                            sceneComponent.GridPos = placementObject.transform.localPosition;
                        }
                    }
                }

                // 设置门数据 add by TangJian 2018/12/26 16:00
                for (int i = 0; i < sceneData.portalDatas.Count; i++)
                {
                    PortalData portalData = sceneData.portalDatas[i];

                    Transform portalTransform = scene.transform.Find("Portals/" + portalData.id);
                    Debug.Assert(portalTransform != null, "找不到门: " + sceneData.sceneId + ":" + portalData.id);

                    PortalController portalController = portalTransform.GetComponent<PortalController>();
                    portalController.PortalData = portalData;
                    portalController.State = 1;
                }

                // 为丢失NavMeshDataBuild
                {
                    foreach(var item in scene.GetComponents<UnityEngine.AI.NavMeshSurface>())
                    {
                        if (item.navMeshData == null)
                        {
                            item.BuildNavMesh();
                        }
                    }
                }
            }

            // 初始化
            // sceneController.InitData();


            return sceneController;
        }
Beispiel #18
0
        private async void UnLoad()
        {
            var obj = await AssetManager.LoadAssetAsync <TextAsset>("WeaponDatas");

            Addressables.Release(obj);
        }
Beispiel #19
0
 private static async void GetAsset()
 {
     s_RoleQTEDataAsset = await AssetManager.LoadAssetAsync <RoleQTEDataAsset>("Manager/RoleQTEDataAsset.asset");
 }
Beispiel #20
0
        public static async void ExecuteRoleAction(RoleController roleController, ActionData actionData)
        {
            if (actionData.chance >= Random.Range(0, 101))
            {
                switch (actionData.type)
                {
                case ActionType.AddAttr:
                {
                    roleController.AddAttr((AttrType)actionData.int1, actionData.float1);
                    // roleController.AddAttr(actionData.string1, actionData.float1);
                }
                break;

                case ActionType.AddAnim:
                {
                    var animGameObject = AnimManager.Instance.PlayAnim(actionData.type + actionData.string1, actionData.string1, actionData.bool1, roleController.CharacterController.bounds.center + new Vector3(0, 0, -0.5f), 1, 1, actionData.float1, roleController.transform);
                }
                break;

                case ActionType.RemoveAnim:
                {
                    AnimManager.Instance.removeAnim(actionData.type + actionData.string1);
                }
                break;

                case ActionType.SetColor:
                    // 变红
                    roleController.SkeletonAnimator.skeleton.DoColorTo(new Color(actionData.float1, actionData.float2, actionData.float3), 0.2f).OnComplete(() =>
                    {
                        roleController.SkeletonAnimator.skeleton.DoColorTo(Color.white, 0.2f);
                    });
                    break;

                case ActionType.CreateDamage:
                    var triggerObject = GameObject.Instantiate(await AssetManager.LoadAssetAsync <GameObject>("Assets/Resources_moved/Prefabs/Trigger/TriggerCube.prefab"));
                    triggerObject.tag   = "Damage";
                    triggerObject.layer = LayerMask.NameToLayer("Interaction");

                    float destroyDelayTime = 0.1f;

                    Tools.RemoveComponent <TriggerController>(triggerObject);
                    var damageController = triggerObject.AddComponent <DamageController>();

                    // 不渲染 add by TangJian 2017/07/07 22:40:39
                    {
                        var meshRenderer = triggerObject.GetComponent <MeshRenderer>();
                        if (DebugManager.Instance.debugData.debug)
                        {
                            meshRenderer.enabled = true;
                            destroyDelayTime     = 1;
                        }
                        else
                        {
                            meshRenderer.enabled = false;
                        }
                    }

                    // 设置大小 add by TangJian 2017/07/07 22:40:40
                    {
                        var boxCollider = triggerObject.GetComponent <BoxCollider>();
                        triggerObject.transform.localScale = new Vector3(actionData.vector3_2.x, actionData.vector3_2.y, actionData.vector3_2.z);
                    }

                    // 设置位置 add by TangJian 2017/07/07 22:34:48
                    {
                        triggerObject.transform.parent = roleController.gameObject.transform.parent;

                        // var a = direction;

                        var x = roleController.gameObject.transform.localPosition.x + actionData.vector3_1.x * roleController.GetDirectionInt();
                        var y = roleController.gameObject.transform.localPosition.y + actionData.vector3_1.y;
                        var z = roleController.gameObject.transform.localPosition.z + actionData.vector3_1.z;

                        triggerObject.transform.localPosition = new Vector3(x, y, z);
                    }

                    var damageData = new DamageData();
                    damageController.damageData = damageData;

                    // 设置持有者 add by TangJian 2017/07/27 20:26:44
                    damageData.teamId           = roleController.RoleData.TeamId;
                    damageData.owner            = roleController.gameObject;
                    damageData.itriggerDelegate = roleController;

                    // 力度 add by TangJian 2017/07/24 15:16:23
                    {
                        damageData.force = new Vector3(roleController.GetDirectionInt() * actionData.vector3_3.x, actionData.vector3_3.y, actionData.vector3_3.z);
                    }

                    // 攻击方向 add by TangJian 2017/07/24 15:17:37
                    {
                        damageData.direction = new Vector3(roleController.GetDirectionInt() * (int)actionData.int2, 0, 0);
                    }

                    // 攻击类别 add by TangJian 2017/07/24 15:17:35
                    {
                        damageData.hitType = (int)actionData.int1;
                    }

                    // 攻击击退 add by TangJian 2017/08/29 22:18:55
                    // {
                    //     damageData.targetMoveBy = new Vector3(roleController.getDirectionInt() * roleAtkFrameEventData.targetMoveBy.x, roleAtkFrameEventData.targetMoveBy.y, roleAtkFrameEventData.targetMoveBy.z);
                    // }

                    // 伤害效果类型 add by TangJian 2017/08/16 15:33:01
                    // {
                    //     var mainHandWeapon = RoleData.EquipData.getMainHand<WeaponData>();
                    //     if (mainHandWeapon != null)
                    //     {
                    //         damageData.damageEffectType = mainHandWeapon.damageEffectType;
                    //     }
                    // }

                    // 攻击力 add by TangJian 2017/07/24 15:17:22
                    // damageData.atk = roleData.Atk * roleAtkFrameEventData.atk;

                    // 暴击 add by TangJian 2017/12/20 21:50:30
                    // if (roleData.FinalCriticalRate >= UnityEngine.Random.Range(0.0f, 1.0f))
                    // {
                    //     //damageData.isCritical = true;
                    //     //damageData.atk *= roleData.CriticalDamage;
                    // }

                    triggerObject.DestoryChildren();
                    Tools.Destroy(triggerObject, destroyDelayTime);
                    break;
                }
            }
        }
Beispiel #21
0
//        [RuntimeInitializeOnLoadMethod]
        public static async void GetAsset()
        {
            s_RoleUpgradeDataAsset = await AssetManager.LoadAssetAsync <RoleUpgradeDataAsset>("Manager/RoleUpgradeDataAsset.asset");
        }