コード例 #1
0
 // Update is called once per frame
 void Update()
 {
     if (shakePos)
     {
         Vector3 pos = originalPosition;
         for (int i = 0; i < positionShakes.Length; i++)
         {
             ShakeParams param = positionShakes[i];
             Vector3     phase = positionPhases[i];
             pos += new Vector3(
                 Mathf.Sin(Time.time * Mathf.PI * 2 * param.frequency + phase.x) * param.amplitude,
                 Mathf.Sin(Time.time * Mathf.PI * 2 * param.frequency + phase.y) * param.amplitude,
                 Mathf.Sin(Time.time * Mathf.PI * 2 * param.frequency + phase.z) * param.amplitude
                 );
         }
         transform.localPosition = pos;
     }
     if (shakeRot)
     {
         Vector3 rot = originalRotation;
         for (int i = 0; i < rotationShakes.Length; i++)
         {
             ShakeParams param = rotationShakes[i];
             Vector3     phase = rotationPhases[i];
             rot += new Vector3(
                 Mathf.Sin(Time.time * Mathf.PI * 2 * param.frequency + phase.x) * param.amplitude,
                 Mathf.Sin(Time.time * Mathf.PI * 2 * param.frequency + phase.y) * param.amplitude,
                 Mathf.Sin(Time.time * Mathf.PI * 2 * param.frequency + phase.z) * param.amplitude
                 );
         }
         transform.localRotation = Quaternion.Euler(rot);
     }
 }
コード例 #2
0
 public void Shake(float intensity, float decay, float speed)
 {
     shake = new ShakeParams()
     {
         Amp   = intensity,
         Phase = 0f,
         Decay = decay,
         Speed = speed
     };
 }
コード例 #3
0
 public void GenerateShake(int power, int flickCoint, int flickDuration)
 {
     if (shakeTask.Initialized && !shakeTask.Completed)
     {
         shakeTask = new ShakeParams(shakeTask.Power + power, flickCoint, flickDuration);
     }
     else
     {
         offsetChangeTask = new OffsetChangeParams(_internalOffset, GenerateOffset(power), flickDuration);
         shakeTask        = new ShakeParams(power, flickCoint, flickDuration);
     }
 }
コード例 #4
0
ファイル: ShakingObj.cs プロジェクト: wildr2/CartesianPiano
 public Coroutine Shake(ShakeParams shake_params)
 {
     return(Shake(shake_params.duration, shake_params.intensity, shake_params.speed));
 }
コード例 #5
0
 public CamShakeParams(float duration, float intensity, float speed, int freeze_frames)
 {
     shake_params       = new ShakeParams(duration, intensity, speed);
     this.freeze_frames = freeze_frames;
 }
コード例 #6
0
 public CamShakeParams()
 {
     shake_params = new ShakeParams(0, 0, 0);
 }