Beispiel #1
0
 public void SetPlayerStatus(PlayStatus status)
 {
     this.playStatus = status;
     frameCount      = 0;
     currentData     = GetCurrentAnimation();
     SetSpriteList();
 }
Beispiel #2
0
    public void LoadPrefabObj()
    {
        string path = Application.dataPath + "/" + skillPath + "/" + skillName.text + ".prefab";

        if (!File.Exists(path))
        {
            Debug.Log("未找到技能预设");
            return;
        }
        PlayerAnimationData pad = null;

#if UNITY_EDITOR
        pad = Instantiate(AssetDatabase.LoadAssetAtPath <PlayerAnimationData>("Assets/" + skillPath + "/" + skillName.text + ".prefab"));
#endif
        ZzcPlayAnim zpa = pad.GetComponent <ZzcPlayAnim>();
        //读取人物数据
        playerZzcPlay.totalTime = zpa.totalTime;
        playerZzcPlay.skillName = zpa.skillName;
        playerZzcPlay.setType   = zpa.setType;
        playerZzcPlay.curve     = zpa.curve;
        playerZzcPlay.oriPathPositions.Clear();
        for (int i = 0; i < zpa.oriPathPositions.Count; i++)
        {
            playerZzcPlay.oriPathPositions.Add(zpa.oriPathPositions[i]);
        }

        //读取特效数据
        for (int i = 0; i < skillEffectParent.childCount; i++)
        {
            Destroy(skillEffectParent.GetChild(i).gameObject);
        }
        for (int i = 0; i < pad.skillEffectDatas.Length; i++)
        {
            SkillEffect se = Instantiate(effectPrefab, skillEffectParent).GetComponent <SkillEffect>();
            se.prefab                  = pad.skillEffectDatas[i].prefab;
            se.waitTime                = pad.skillEffectDatas[i].waitTime;
            se.destroyTime             = pad.skillEffectDatas[i].destroyTime;
            se.playTime                = pad.skillEffectDatas[i].playTime;
            se.curve                   = pad.skillEffectDatas[i].curve;
            se.transform.localPosition = pad.skillEffectDatas[i].startPos;
            se.oriForward              = pad.skillEffectDatas[i].oriForward;
            se.originalPos             = pad.skillEffectDatas[i].oriPos;
            se.oriPathPositions.Clear();
            for (int j = 0; j < pad.skillEffectDatas[i].oriPathPositions.Count; j++)
            {
                se.oriPathPositions.Add(pad.skillEffectDatas[i].oriPathPositions[j]);
            }
        }


        Destroy(zpa.gameObject);
        Debug.Log(skillName.text + "读取完毕");
    }
Beispiel #3
0
    void Awake()
    {
        bodySprite = this.transform.FindChild("body").GetComponent <UISprite>();
        headSprite = this.transform.FindChild("head").GetComponent <UISprite>();

        atlas         = bodySprite.atlas;
        allSpriteList = atlas.GetListOfSprites();

        currentData = GetCurrentAnimation();
        timerFrame  = 1f / currentData.framerate;
        GameController.Instance.MouseUp += () =>
        {
            SetPlayerStatus(PlayStatus.cast);
        };

        GameController.Instance.MouseDown += () =>
        {
            SetPlayerStatus(PlayStatus.spellcast);
        };
    }
Beispiel #4
0
    public override void OnInspectorGUI()
    {
        obj = new SerializedObject(target);
        Undo.RecordObject(target, "dad");
        obj.Update();
        pad = (PlayerAnimationData)target;

        EditorGUILayout.BeginVertical();
        EditorGUILayout.Space();
        EditorGUILayout.LabelField("自定义Assets目录下路径,前后不需要加/", EditorStyles.boldLabel);
        EditorGUILayout.Space();
        pad.skillPath = EditorGUILayout.TextField("技能保存和读取的路径", pad.skillPath);

        EditorGUILayout.EndVertical();

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
        obj.ApplyModifiedProperties();
    }