コード例 #1
0
ファイル: SingleBeatonDataUI.cs プロジェクト: satela/xjhU3d
    public void initdata(BeatonData datas)
    {
        eBeatonbackFly = datas.eBeatonbackFly;

        animatorBeatonClip = datas.animatorBeatonClip;

        timeInput.value = datas.beatonTime.ToString();

        if (!string.IsNullOrEmpty(datas.beatonEffUrl))
        {
            string asseturl = UrlManager.GetEffectUrl(datas.beatonEffUrl, EEffectType.Beaton);
            beatonEff = UnityEditor.AssetDatabase.LoadAssetAtPath(asseturl, typeof(GameObject)) as GameObject;
        }
        else
            beatonEff = null;

        actionNameTxt.text = "受击动作:" + DefaultSkillParam.ActionName[animatorBeatonClip];

        beatonBacktxt.text = "击退击飞:" + DefaultSkillParam.beatonBackFly[(int)eBeatonbackFly];

        if (beatonEff != null)
            beatonEfftxt.text = "被击特效:" + beatonEff.name;
        else
            beatonEfftxt.text = "被击特效:无";
    }
コード例 #2
0
ファイル: SingleBeatonDataUI.cs プロジェクト: satela/xjhU3d
    public BeatonData getData()
    {
        BeatonData data = new BeatonData();

        data.beatonTime = float.Parse(timeInput.value);
        data.animatorBeatonClip = animatorBeatonClip;
        if (beatonEff != null)
            data.beatonEffUrl = beatonEff.name;
        else
            data.beatonEffUrl = "";
        data.eBeatonbackFly = eBeatonbackFly;

        return data;
    }
コード例 #3
0
ファイル: DBaseFightRole.cs プロジェクト: satela/xjhU3d
    //被击退或击飞
    IEnumerator  beatonToBackOrFly(BeatonData beatondata)
    {
        yield return new WaitForSeconds(beatondata.beatonTime);

        if (!string.IsNullOrEmpty(beatondata.beatonEffUrl))
        {
            GameObject beatonEff = new GameObject(beatondata.beatonEffUrl);
            EffectAsset effectasset = beatonEff.AddComponent<EffectAsset>();

            effectasset.setEffectParam(beatondata.beatonEffUrl, rolePosition + Vector3.up, Quaternion.identity, EEffectType.Beaton);
        }

        if (beatondata.eBeatonbackFly == EBeatonToBackFly.None)
        {
            if (animatorControl.currentState == eAnimatorState.await || animatorControl.currentState == eAnimatorState.beaten || animatorControl.currentState == eAnimatorState.fall)
                animatorControl.changeToState(beatondata.animatorBeatonClip);
            yield return null;
        }
        if (beatondata.eBeatonbackFly == EBeatonToBackFly.Back)
        {
            Vector3 backpos = rolePosition - roleModel.transform.forward * DefaultSkillParam.BeatonBackMaxDist;

            if (agent != null && agent.enabled) //被击飞的时候 不能同时被击退,怕掉到 建筑物 上面
            {
                //agent.enabled = true;
                NavMeshPath path = new NavMeshPath();
                agent.CalculatePath(backpos, path);
                if (path.corners.Length == 2)
                {
                    agent.enabled = false;
                    iTween.MoveTo(roleModel, iTween.Hash("position", backpos, "easeType", "easeOutQuart", "delay",0, "time", 0.3f, "oncomplete", "resetAgent"));
                    yield return new WaitForSeconds(0.3f);
                    agent.enabled = true;

                    if (animatorControl.currentState == eAnimatorState.await || animatorControl.currentState == eAnimatorState.beaten ||animatorControl.currentState == eAnimatorState.fall)
                    animatorControl.changeToState(beatondata.animatorBeatonClip);

                }
                else
                {
                    if (animatorControl.currentState == eAnimatorState.await || animatorControl.currentState == eAnimatorState.beaten || animatorControl.currentState == eAnimatorState.fall)
                        animatorControl.changeToState(beatondata.animatorBeatonClip);
                }
            }
            else
            {
                if (animatorControl.currentState == eAnimatorState.await || animatorControl.currentState == eAnimatorState.beaten || animatorControl.currentState == eAnimatorState.fall)
                    animatorControl.changeToState(beatondata.animatorBeatonClip);
            }
        }
        else if (beatondata.eBeatonbackFly == EBeatonToBackFly.Fly && agent.enabled)
        {
            agent.enabled = false;
            if (animatorControl.currentState == eAnimatorState.await || animatorControl.currentState == eAnimatorState.beaten ||animatorControl.currentState == eAnimatorState.fall)
                animatorControl.changeToState(beatondata.animatorBeatonClip);

            Vector3 originpos = rolePosition;
            Vector3 topos = rolePosition + Vector3.up * DefaultSkillParam.BeatonUpMaxDist;
            iTween.MoveTo(roleModel, iTween.Hash("position", topos, "easeType", "easeOutCirc", "delay", 0, "time", 0.3f));
            yield return new WaitForSeconds(0.33f);

            iTween.MoveTo(roleModel, iTween.Hash("position", originpos, "easeType", "easeInCubic", "delay", 0, "time", 0.3f));
            yield return new WaitForSeconds(0.35f);

            agent.enabled = true;

        }
    }
コード例 #4
0
ファイル: DSkillBaseData.cs プロジェクト: satela/xjhU3d
    public void parseBeatonStr(string xmlstr)
    {
        if (beatonDatas != null)
            beatonDatas.Clear();
        string[] beatonliststr = xmlstr.Split('|');

        BeatonData beatdata;
        string[] tempstr;
        for (int i = 0; i < beatonliststr.Length; i++)
        {
            tempstr = beatonliststr[i].Split(',');
            if(tempstr.Length == 4)
            {
                beatdata = new BeatonData();
                beatdata.animatorBeatonClip = (eAnimatorState)(int.Parse(tempstr[0]));
                beatdata.beatonEffUrl = tempstr[1];
                beatdata.beatonTime = float.Parse(tempstr[2]);
                beatdata.eBeatonbackFly = (EBeatonToBackFly)(int.Parse(tempstr[3]));
                beatonDatas.Add(beatdata);
            }
           
        }
    }