public void Shake(out bool bIsFinish) { if (_fRemainShakePow > 0f) { Vector3 vecShakePos = PrimitiveHelper.RandomRange(vecOriginPos.AddFloat(-_fRemainShakePow), vecOriginPos.AddFloat(_fRemainShakePow)); if (eShakePosType != EShakePos.All) { if (eShakePosType == EShakePos.Y || eShakePosType == EShakePos.YZ || eShakePosType == EShakePos.Z) { vecShakePos.x = vecOriginPos.x; } if (eShakePosType == EShakePos.X || eShakePosType == EShakePos.XZ || eShakePosType == EShakePos.Z) { vecShakePos.y = vecOriginPos.y; } if (eShakePosType == EShakePos.X || eShakePosType == EShakePos.XY || eShakePosType == EShakePos.Y) { vecShakePos.z = vecOriginPos.z; } } pTransform.position = vecShakePos; _fRemainShakePow -= _fShakeMinusDelta; bIsFinish = false; } else { pTransform.position = vecOriginPos; bIsFinish = true; } }
private Vector3 ProcShake(Vector3 vecFollowPos) { if (_fRemainShakePow > 0f) { _fRemainShakePow -= _fShakeMinusDelta; if (_fRemainShakePow <= 0f) { if (_bFollowX == false) { vecFollowPos.x = _vecOriginPos.x; } if (_bFollowY == false) { vecFollowPos.y = _vecOriginPos.y; } if (_bFollowZ == false) { vecFollowPos.z = _vecOriginPos.z; } } else { Vector3 vecShakePos = PrimitiveHelper.RandomRange(vecFollowPos.AddFloat(-_fRemainShakePow), vecFollowPos.AddFloat(_fRemainShakePow)); //if (_bFollowX) vecFollowPos.x = vecShakePos.x; //if (_bFollowY) vecFollowPos.y = vecShakePos.y; //if (_bFollowZ) vecFollowPos.z = vecShakePos.z; vecFollowPos = vecShakePos; } } return(vecFollowPos); }
// ========================== [ Division ] ========================== // private IEnumerator CoStartShake() { _vecOriginPos = transform.localPosition; while (_fRemainShakePow > 0f) { // Vector3 vecOriginPos = transform.localPosition; Vector3 vecShakePos = PrimitiveHelper.RandomRange(_vecOriginPos.AddFloat(-_fRemainShakePow), _vecOriginPos.AddFloat(_fRemainShakePow)); if(_eShakePosType != EShakePos.All) { if (_eShakePosType == EShakePos.Y || _eShakePosType == EShakePos.YZ || _eShakePosType == EShakePos.Z) vecShakePos.x = _vecOriginPos.x; if (_eShakePosType == EShakePos.X || _eShakePosType == EShakePos.XZ|| _eShakePosType == EShakePos.Z) vecShakePos.y = _vecOriginPos.y; if (_eShakePosType == EShakePos.X || _eShakePosType == EShakePos.XY || _eShakePosType == EShakePos.Y) vecShakePos.z = _vecOriginPos.z; } transform.localPosition = vecShakePos; _fRemainShakePow -= _fShakeMinusDelta; yield return null; } if (_bBackToOriginPos) transform.localPosition = _vecOriginPos; yield break; }
private void Update() { if (_bIsShaking) { if (_fRemainShakePow > 0f) { Vector3 vecShakePos = PrimitiveHelper.RandomRange(_vecOriginPos.AddFloat(-_fRemainShakePow), _vecOriginPos.AddFloat(_fRemainShakePow)); if (_eShakePosType != EShakePos.All) { if (_eShakePosType == EShakePos.Y || _eShakePosType == EShakePos.YZ || _eShakePosType == EShakePos.Z) { vecShakePos.x = _vecOriginPos.x; } if (_eShakePosType == EShakePos.X || _eShakePosType == EShakePos.XZ || _eShakePosType == EShakePos.Z) { vecShakePos.y = _vecOriginPos.y; } if (_eShakePosType == EShakePos.X || _eShakePosType == EShakePos.XY || _eShakePosType == EShakePos.Y) { vecShakePos.z = _vecOriginPos.z; } } transform.localPosition = vecShakePos; _fRemainShakePow -= _fShakeMinusDelta; } else { transform.localPosition = _vecOriginPos; _bIsShaking = false; } } }
public void DoShakeObject(float fShakePow, float fTime) { _vecOriginPos = _pTransformCached.localPosition; Vector3 vecShakePos = PrimitiveHelper.RandomRange(_vecOriginPos.AddFloat(-fShakePow), _vecOriginPos.AddFloat(fShakePow)); iTween.ShakePosition(_pGameObjectCached, vecShakePos, fTime); //if(_bMachineShaking) // PCManagerFramework.instance.DoShakeMobile(); }
// ========================== [ Division ] ========================== // private IEnumerator CoStartShake() { _vecOriginPos = _pTransformCached.localPosition; while (_fRemainShakePow > 0f) { Vector3 vecOriginPos = _pTransformCached.localPosition; Vector3 vecShakePos = PrimitiveHelper.RandomRange(vecOriginPos.AddFloat(-_fRemainShakePow), vecOriginPos.AddFloat(_fRemainShakePow)); if (_eShakePosType != EShakePos.All) { if (_eShakePosType == EShakePos.Y || _eShakePosType == EShakePos.YZ || _eShakePosType == EShakePos.Z) { vecShakePos.x = vecOriginPos.x; } if (_eShakePosType == EShakePos.X || _eShakePosType == EShakePos.XZ || _eShakePosType == EShakePos.Z) { vecShakePos.y = vecOriginPos.y; } if (_eShakePosType == EShakePos.X || _eShakePosType == EShakePos.XY || _eShakePosType == EShakePos.Y) { vecShakePos.z = vecOriginPos.z; } } _pTransformCached.localPosition = vecShakePos; _fRemainShakePow -= _fShakeMinusDelta; yield return(null); } if (_bBackToOriginPos) { _pTransformCached.localPosition = _vecOriginPos; } yield break; }
public Vector3 DoCalculate_ShakePosition(Vector3 vecOriginPos, EShakePos eShakePosType, float fShakePower) { Vector3 vecShakePos = PrimitiveHelper.RandomRange(vecOriginPos.AddFloat(-fShakePower), vecOriginPos.AddFloat(fShakePower)); if (eShakePosType != EShakePos.All) { if (eShakePosType == EShakePos.Y || eShakePosType == EShakePos.YZ || eShakePosType == EShakePos.Z) { vecShakePos.x = vecOriginPos.x; } if (eShakePosType == EShakePos.X || eShakePosType == EShakePos.XZ || eShakePosType == EShakePos.Z) { vecShakePos.y = vecOriginPos.y; } if (eShakePosType == EShakePos.X || eShakePosType == EShakePos.XY || eShakePosType == EShakePos.Y) { vecShakePos.z = vecOriginPos.z; } } return(vecShakePos); }