/// <summary> /// 重播缓存的操作 /// </summary> private void ReplayOperationsCached() { if (m_VFXController == null) { return; } if (m_OpCache_SetBeamTarget) { VFXBeam beam = m_VFXController.GetComponent <VFXBeam>(); if (beam != null) { if (m_OpCache_BeamTargetTransform) { beam.SetBeamTarget(m_OpCache_BeamStartTransform, m_OpCache_BeamTargetTransform , m_OpCache_BeamTargetOffset, m_OpCache_UpdateHitPoint, m_OpCache_TargetColliderList); } else { beam.SetBeamTarget(m_OpCache_BeamStartTransform, m_OpCache_TargetPoint); } } } }
/// <summary> /// 如果此特效是一个射线特效, 设置射线的目标点 /// 如果特效不是射线, 则不会有任何效果 /// </summary> /// <param name="targetPoint"></param> public void SetBeamTarget(Transform startTransform, Vector3 targetPoint) { if (m_VFXController == null) { m_OpCache_SetBeamTarget = true; m_OpCache_BeamStartTransform = startTransform; m_OpCache_TargetPoint = targetPoint; } else { m_OpCache_SetBeamTarget = false; VFXBeam beam = m_VFXController.GetComponent <VFXBeam>(); if (beam != null) { beam.SetBeamTarget(transform, targetPoint); } } }
/// <summary> /// 如果此特效是一个射线特效, 设置射线的目标 /// 如果特效不是射线, 则不会有任何效果 /// </summary> /// <param name="targetTransform">目标Transform, 射线以此为结束点</param> /// <param name="offset">射线结束点相对于targetTransform的偏移</param> /// <param name="updateHitPoint">是否根据目标Collider的形状每帧更新射线弹着点</param> /// <param name="targetColliderList">只有需要每帧更新弹着点的时候才需要设置这个参数。 目标拥有的所有Collider</param> public void SetBeamTarget(Transform startTransform, Transform targetTransform, Vector3 offset, bool updateHitPoint = false, List <Collider> targetColliderList = null) { if (m_VFXController == null) { m_OpCache_SetBeamTarget = true; m_OpCache_BeamStartTransform = startTransform; m_OpCache_BeamTargetTransform = targetTransform; m_OpCache_BeamTargetOffset = offset; m_OpCache_UpdateHitPoint = updateHitPoint; m_OpCache_TargetColliderList = targetColliderList; m_OpCache_TargetPoint = targetTransform.position + offset; } else { m_OpCache_SetBeamTarget = false; VFXBeam beam = m_VFXController.GetComponent <VFXBeam>(); if (beam != null) { beam.SetBeamTarget(transform, targetTransform , offset, updateHitPoint, m_OpCache_TargetColliderList); } } }