Пример #1
0
    public override void OnUpdate(ref AiParam _param)
    {
        if (_param == null)
            return;

        _param.Vec3Target = _param.Owner.transform.position + _param.Owner.transform.forward * VISIBLED_RANGE;

        DecreasingIK (ref _param);

        if(SearchForEnemy(ref _param, VISIBLED_RANGE) == true)
        {
            _param.OnAiStrategyChanged(AiFactory.AiStrategyType.Fight);
        }
        else if(IsArrival(ref _param) == true)
        {
            _param.OnAiEmotionChanged(UnityChan_Ctrl.EmotionState.Default);
            _param.OnAiStrategyChanged(AiFactory.AiStrategyType.Idle);
        }
    }
Пример #2
0
    public override void OnUpdate(ref AiParam _param)
    {
        if (_param == null)
            return;

        IncreasingIK (ref _param);

        _param.Weight += Time.deltaTime * 0.5F;
        _param.Weight = Mathf.Clamp (_param.Weight, 0F, 1F);

        _param.Vec3Target = Vector3.Lerp (_param.Vec3Start, _param.Vec3End, _param.Weight);

        if(SearchForEnemy(ref _param, VISIBLED_RANGE) == true)
        {
            _param.OnAiStrategyChanged(AiFactory.AiStrategyType.Fight);
        }
        else if(1F <= _param.Weight)
        {
            _param.OnAiEmotionChanged(UnityChan_Ctrl.EmotionState.Default);
            _param.OnAiStrategyChanged(AiFactory.AiStrategyType.Patrol);
        }
    }