Beispiel #1
0
    /// <summary>
    /// 使用组件进行移动参数变更,
    /// <para>具体参数参考AddParaChangeEvent方法</para>
    /// <para>bullet</para>
    /// <para>para MovePara</para>
    /// <para>changeMode 改变方式 ChangeTo,IncBy,DecBy,ChangeTo</para>
    /// <para>valueType 参数类型</para>
    /// <para>arg0 参数0</para>
    /// <para>arg1 参数1</para>
    /// <para>valueOffset 随机偏移量</para>
    /// <para>delay 起始延迟</para>
    /// <para>duration 变化持续时间</para>
    /// <para>intMode 插值方式</para>
    /// <para>repeatCount 重复次数</para>
    /// <para>repeatInterval 每次重复的间隔</para>
    /// <para>总计12个参数</para>
    /// </summary>
    /// <param name="luaState"></param>
    /// <returns></returns>
    public static int AddBulletParaChangeEvent(ILuaState luaState)
    {
        EnemyBulletBase   bullet         = luaState.ToUserData(-12) as EnemyBulletBase;
        BulletParaType    para           = (BulletParaType)luaState.ToInteger(-11);
        ParaChangeMode    changeMode     = (ParaChangeMode)luaState.ToInteger(-10);
        int               valueType      = luaState.ToInteger(-9);
        float             arg0           = (float)luaState.ToNumber(-8);
        float             arg1           = (float)luaState.ToNumber(-7);
        float             valueOffset    = (float)luaState.ToNumber(-6);
        int               delay          = luaState.ToInteger(-5);
        int               duration       = luaState.ToInteger(-4);
        InterpolationMode intMode        = (InterpolationMode)luaState.ToInteger(-3);
        int               repeatCount    = luaState.ToInteger(-2);
        int               repeatInterval = luaState.ToInteger(-1);
        BCParasChange     bc             = bullet.AddOrGetComponent <BCParasChange>();
        ParaChangeValue   changeValue    = new ParaChangeValue
        {
            argType = valueType,
            arg0    = arg0,
            arg1    = arg1,
            offset  = valueOffset,
        };

        bc.AddParaChangeEvent(para, changeMode, changeValue, delay, duration, intMode, repeatCount, repeatInterval);
        return(0);
    }
Beispiel #2
0
    /// <summary>
    /// 添加改变参数的事件
    /// </summary>
    /// <param name="para">参数类型</param>
    /// <param name="changeMode">改变的模式,(增加到、减少到、变化到)</param>
    /// <param name="changeValue">改变的值</param>
    /// <param name="valueOffset">改变的值的上下偏移</param>
    /// <param name="delay">延迟</param>
    /// <param name="duration">变化的持续时间</param>
    /// <param name="intMode">变化的插值方式</param>
    /// <param name="repeatCount">重复次数</param>
    /// <param name="repeatInterval">重复的时间间隔</param>
    public void AddParaChangeEvent(BulletParaType para, ParaChangeMode changeMode,
                                   ParaChangeValue value, int delay, float duration, InterpolationMode intMode, int repeatCount, int repeatInterval)
    {
        BulletParasChangeData changeData = CreateChangeData(para, intMode);

        changeData.changeMode  = changeMode;
        changeData.changeValue = value;
        changeData.delay       = delay;
        changeData.changeTime  = 0;
        // duration小于等于0时默认设置为1,以免报错
        if (duration <= 0)
        {
            duration = 1;
        }
        changeData.changeDuration = duration;
        changeData.repeatCount    = repeatCount;
        changeData.repeatInterval = repeatInterval;
        _changeList.Add(changeData);
        _listCount++;
    }