/// <summary> /// Add random value to Vector3 /// </summary> /// <param name="trans"> transfrorm u want to apply. </param> /// <param name="randVec"> value for each axis. </param> /// <param name="checks"> check for eaxh axis. </param> /// <returns> transform result. </returns> public static Vector3 ApplyRandVector3(Vector3 trans, Vector3 randVec, JCS_Bool3 checks) { Vector3 tempVec = trans; if (checks.check1) { float val = JCS_Random.Range(-randVec.x, randVec.x); tempVec = IncVecX(tempVec, val); } if (checks.check2) { float val = JCS_Random.Range(-randVec.y, randVec.y); tempVec = IncVecY(tempVec, val); } if (checks.check3) { float val = JCS_Random.Range(-randVec.z, randVec.z); tempVec = IncVecZ(tempVec, val); } trans = tempVec; return(tempVec); }
/// <summary> /// /// </summary> private void DoDegreeChangeEffect() { if (!mDegreeChangeEffect) { return; } mDegreeTimer += Time.deltaTime; if (mDegreeTimer < mTimeToDegreeChange) { return; } // prepare random Vector3 randVal = new Vector3( mRandDegreeRangeX, mRandDegreeRangeY, mRandDegreeRangeZ); JCS_Bool3 checkers = new JCS_Bool3( mRandDegreeX, mRandDegreeY, mRandDegreeZ); // apply it. transform.eulerAngles = JCS_Util.ApplyRandVector3(transform.eulerAngles, randVal, checkers); // reset timer mDegreeTimer = 0; // conitnue the effect then dont disable the effect! if (!mContinousDegreeChange) { // end the effect! mDegreeChangeEffect = false; } }