public virtual void Initialize(BasePartsData _target, List <ActionParameter> _actions, Skill _skill, List <NormalSkillEffect> _skillEffect, UnitCtrl _owner, float _height, bool _hasBlackOutTime, bool _isAbsolute, Vector3 _targetPosition, List <ShakeEffect> _shakes, eTargetBone _targetBone) { ShakeEffects = _shakes; IsAbsolute = _isAbsolute; Skill = _skill; Vector3 pos = _targetPosition; if (!IsAbsolute) { if (_targetBone == eTargetBone.FIXED_CENETER || _targetBone == eTargetBone.CENTER) { pos = _target.GetButtontransformPosition() + _target.GetFixedCenterPos(); } if (_targetBone == eTargetBone.BOTTOM) { pos = _target.GetButtontransformPosition(); } if (_targetBone == eTargetBone.HEAD) { pos = GetHeadBonePos(_target); } } TargetPos = pos; FireTarget = _target; _target.Owner.FirearmCtrlsOnMe.Add(this); SkillHitEffects = _skillEffect; EndActions = _actions; owner = _owner; SetInitialPosition(); InitMoveType(_height, _owner); float distance = Vector3.Distance(TargetPos, initialPosistion) + 1; owner.StartCoroutine(UpdatePosition(distance)); }
protected virtual Vector3 GetHeadBonePos(BasePartsData _target) { return(_target.GetButtontransformPosition() + _target.GetFixedCenterPos()); }