public override void createUI(ISkillEvent value, EditorUI p) { base.createUI(value, p); this.ev = value as CameraShakeEvent; slider = new EditorSlider("幅度:"); slider.setRank(0.1f, 10.0f, 0.1f); slider.value = ev.factor; slider1 = new EditorSlider("周期:"); slider1.setRank(0.1f, 10.0f, 1); slider1.value = ev.period; formItem = new EditorVector3("偏移:"); formItem.value = ev.shaderVector; formItem.addEventListener(EventX.CHANGE, formHandle); slider.addEventListener(EventX.CHANGE, changeHandle); slider1.addEventListener(EventX.CHANGE, changeHandle1); p.addChild(slider); p.addChild(slider1); p.addChild(formItem); }
void OnCameraShakeEvent(CameraShakeEvent eve) { Sequence shakeSeq = DOTween.Sequence(); shakeSeq.Append(this.transform.DOShakePosition(eve.Duration, eve.Strength, eve.Vibrato, eve.Randomness, false)) .AppendCallback(() => { this.transform.position = initPos; }); }
public ShakeEvent(CameraShakeEvent data) { _data = data; _duration = data.duration; _timeRemaining = _duration; const float rand = 32f; noiseOffset.x = Random.Range(0f, rand); noiseOffset.y = Random.Range(0f, rand); noiseOffset.z = Random.Range(0f, rand); }
void OnStartShake(CameraShakeEvent evt) { float amp = evt.amp, freq = evt.freq, duration = evt.duration; int octaves = evt.octaves; while (octaves > 0) { activeShakes.Add(new Shake { amp = amp, freq = freq, duration = duration, elapsed = 0, }); amp /= 2; freq *= 2; octaves -= 1; } }
public void AddShakeEvent(CameraShakeEvent data) { _shakeEvents.Add(new ShakeEvent(data)); }