public void HandleCameraEffect(int id) { CameraAnimation cameraAnimation = DataReader <CameraAnimation> .Get(id); if (cameraAnimation == null) { return; } switch (cameraAnimation.aniType) { case 1: this.StartCameraAnimation(cameraAnimation); break; case 3: if (cameraAnimation != null && cameraAnimation.shader != null && cameraAnimation.shader.get_Count() > 0) { for (int i = 0; i < cameraAnimation.shader.get_Count(); i++) { int cameraShader = cameraAnimation.shader.get_Item(i); EventDispatcher.Broadcast <int, bool>(ShaderEffectEvent.CAMERA_ANIMATION_EFFECT, cameraShader, true); if (ShakeCamera.cameraShaderTimerList.ContainsKey(cameraAnimation.shader.get_Item(i))) { TimerHeap.DelTimer(ShakeCamera.cameraShaderTimerList[cameraShader]); } uint value = TimerHeap.AddTimer((uint)cameraAnimation.time, 0, delegate { EventDispatcher.Broadcast <int, bool>(ShaderEffectEvent.CAMERA_ANIMATION_EFFECT, cameraShader, false); }); ShakeCamera.cameraShaderTimerList[cameraShader] = value; } } break; } }
public override void HandleStart() { mDurationTime = 3f; nameState = "Surprise!"; mStateID = 3; mBulletType = BulletSpawner.eBulletType.Normal; CameraAnimation.Shake(); mExtraEnemy.SetActive(true); float minDistance = float.PositiveInfinity; Vector3 spawnPosition = Vector3.zero; float minDistanceToPlayer = Mathf.Max(mPlayer.GetComponent <SpriteRenderer>().bounds.size.x, mPlayer.GetComponent <SpriteRenderer>().bounds.size.y) + Mathf.Max(mExtraEnemy.GetComponent <SpriteRenderer>().bounds.size.x, mExtraEnemy.GetComponent <SpriteRenderer>().bounds.size.y); foreach (Vector3 position in mSpawnPoints) { float currentPositionDistance = Vector3.Distance(mPlayer.transform.position, position); if (currentPositionDistance < minDistance && currentPositionDistance > minDistanceToPlayer) { minDistance = currentPositionDistance; spawnPosition = position; } } mExtraEnemy.transform.position = spawnPosition; mLastTimeShootedExtraEnemy = Time.time; mAppearAudio.Play(); base.BasicStart(); }
private void Awake() { camera = Camera.main; cameraAnimation = GetComponent <CameraAnimation>(); cameraAnimation.SetContinuingAction(MoveSlowly); cameraAnimation.SetStopAction(MoveToTheTargetPosition); }
/// <summary> /// Plays a camera animation asset. Camera animation assets can be found in the asset menu. /// Animation will automatically accomadate for character size and orientation and follow the character. /// </summary> /// <param name="target"> The target of the animation. Its bounds are used to determine certain paramters. </param> /// <param name="camAnim"> Camera animation asset to play. </param> public void PlayAnimation(Collider target, CameraAnimation camAnim) { /* Disable Animator */ Animator.enabled = false; /* De-Parent the Camera */ transform.parent = null; /* Determine If The Camera Should Be Mirrored. * The camera should be mirrored if the angle between the arena's designated foward direction * and the targets right direction are more than 90 degrees apart. */ float m = Vector3.Dot(BattleManager.instance.center.transform.right, target.transform.forward) < 0 ? -1 : 1; /* Offset The Camera's Position From Targets Center By Starting Offset */ transform.position = new Vector3( camAnim.startOffset.x * m, camAnim.startOffset.y, camAnim.startOffset.z) + target.bounds.center; /* Locally Rotate The Camera By Starting Angle */ transform.rotation = Quaternion.Euler(new Vector3( camAnim.startAngle.x, camAnim.startAngle.y * m, camAnim.startAngle.z)); /* Start Animating The Camera */ this.StartInterruptableCoroutine(camAnim.Animate(target, cam, m), ref currentRoutine); }
public Camera(Renderer Renderer) { this.Renderer = Renderer; Animation = new CameraAnimation(); RecalculateMatrices(); }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state //override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) //{ // //} // OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks //override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) //{ // //} // OnStateExit is called when a transition ends and the state machine finishes evaluating this state override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { CameraAnimation camAnim = animator.transform.parent.GetComponent <CameraAnimation>(); if (camAnim != null) { camAnim.FinishApproach(); } }
private void OnTriggerEnter2D(Collider2D collision) { CameraAnimation spotted = gameObject.GetComponentInParent <CameraAnimation>(); if (collision.gameObject.tag == ("Player")) { spotted.Spotted(); } }
private void OnMoveCamera(int id) { Debuger.Info("---->?", new object[0]); CameraAnimation cameraData = DataReader <CameraAnimation> .Get(id); if (CameraMove.intance != null) { CameraMove.intance.StartShake(cameraData); } }
private void Rotate(bool clockwise) { if (animationFinished) { var rotate = new RotateCamera(cam, clockwise); requestResponse = Response.Allow; player.facing = Direction.FromAngle(rotate.destRot); camAnim = rotate; } }
public void GameOver() { Debug.LogWarning("Congrats the game has been won"); HelpText.text = ""; GameOverAnimation.Play(); CameraAnimation.Play(); FindObjectOfType <NetworkGameManager>().InfoText.text = "You have solved the puzzles and escaped the island!"; Invoke("LeaveMatch", GameOverAnimation.clip.length); }
void OnCollisionEnter2D(Collision2D aCollision) { if (aCollision.gameObject.tag == BulletTag || aCollision.gameObject.tag == EnemyTag) { CameraAnimation.Shake(); if (mCanDie) { GameManagerSC.GoToGameState(GameManagerSC.GameState.NotPlaying); } } }
// Use this for initialization void Start() { once = false; dc = dcObject.GetComponent<DestroyControls> (); ca = cameraAniObject.GetComponent<CameraAnimation> (); ch = chatHandlerObject.GetComponent<ChatHandler> (); vui = volumeUiObject.GetComponent<VolumeUI> (); introString = introLinesFile.text; char[] delimitingChars = {'\n'}; introLines = introString.Split (delimitingChars); }
public override void StateFixedUpdate() { base.Move(); base.ShootingManager(); if (Time.time - mLastTimeShootedExtraEnemy > mTimeBetweenShootingExtraEnemy) { mLastTimeShootedExtraEnemy = Time.time; mShootCoroutines.Add(StartCoroutine(ShootBurst())); CameraAnimation.Shake(0.03f, mBulletsPerShootingExtraEnemy * mTimeBetweenBulletExtraEnemy); } }
IEnumerator LoadSceneSingleCoroutine(string SceneName) { CameraAnimation ca = Camera.main.GetComponent <CameraAnimation>(); CameraControl cc = Camera.main.GetComponent <CameraControl>(); float fotime = 0.7f; ca.FadeOut(fotime); yield return(new WaitForSeconds(fotime)); SceneManager.LoadScene(SceneName, LoadSceneMode.Single); }
IEnumerator StageClearCoroutine() { CameraAnimation ca = Camera.main.GetComponent <CameraAnimation>(); CameraControl cc = Camera.main.GetComponent <CameraControl>(); float waittime = 3; float fotime = 0.7f; yield return(new WaitForSeconds(waittime)); ca.FadeOut(fotime); yield return(new WaitForSeconds(fotime)); }
public void PlayAnimation(CameraAnimation type) { string animName; switch (type) { //case CameraAnimation.SmallCollision: // animName = smallCollisionAnimationName; // break; case CameraAnimation.Collision: animName = collisionAnimationName; break; case CameraAnimation.Damage: // ignore if some other animation is playing if (cameraAnimation.isPlaying) { return; } animName = damageAnimationName; break; case CameraAnimation.Explosion: // ignore if some other animation is playing if (cameraAnimation.isPlaying) { return; } animName = explosionAnimationName; break; case CameraAnimation.Death: animName = deathAnimationName; break; default: Debug.Log("Wrong camera animation enum", this); return; } // reset to start if (cameraAnimation.isPlaying) { cameraAnimation[animName].time = 0; } cameraAnimation.Play(animName); }
public override ScriptExecutionResult Execute(ScriptExecutionContext context) { if (_animation == null) { _animation = context.Scene.CameraController.StartAnimation( _waypointPath.Start.Position, _waypointPath.End.Position, context.UpdateTime.TotalGameTime, _duration); } return(_animation.Finished ? ScriptExecutionResult.Finished : ScriptExecutionResult.NotFinished); }
void OnTriggerEnter2D(Collider2D aCollision) { if (aCollision.gameObject.CompareTag(BulletTag)) { Destroy(aCollision.gameObject); Destroy(this.gameObject); } else if (aCollision.gameObject.CompareTag(ObstacleTag) || aCollision.gameObject.CompareTag(EnemyTag)) { Destroy(this.gameObject); } mCristalAudio.pitch = Random.Range(0.9f, 1.1f); mCristalAudio.Play(); CameraAnimation.Shake(0.03f, 0.1f); }
protected void StartCameraAnimation(CameraAnimation cameraData) { if (cameraData == null || this.mainCamera == null || this.isShake) { return; } if (cameraData.time > 0) { this.shakedis = (float)cameraData.swing * 0.01f; this._shakeTime = (float)cameraData.time * 0.001f; this.shakeCycle = 90f; this.type = (shakeType)cameraData.type; this.ran = cameraData.rate; base.StartCoroutine(this.Shake()); } }
// Update is called once per frame void Update() { if (nowTime < startTime) { nowTime += Time.deltaTime; } else { if (nowNum == arr_lenth) { CameraAnimation tmp = GameObject.Find("CameraAnimation").GetComponent <CameraAnimation> (); tmp.start = true; gameObject.SetActive(false); } else { if (rotate) { rotate = false; //Debug.Log ("1: " + transform.rotation); //transform.LookAt (vector [nowNum]); //transform.rotation = Quaternion.SlerpUnclamped(transform.rotation,r2,Time.deltaTime * 0.7f); //Debug.Log ("2: " + transform.rotation); } else { //transform.rotation = Quaternion.Slerp (transform.rotation, r2, Time.deltaTime * 3f); Vector3 relativePos = vector [nowNum] - transform.position; r2 = Quaternion.LookRotation(relativePos); transform.rotation = Quaternion.Slerp(transform.rotation, r2, Time.deltaTime * 3f); transform.position = Vector3.MoveTowards(transform.position, vector [nowNum], camspeed); } } } if (Input.GetKeyDown("f")) // 'f' 키 입력 시 카메라 애니메이션 스킵 { nowNum = arr_lenth; } //obj.Move(vector); //rig.AddForceAtPosition(Vector3.forward,vector); }
private void Move(Direction dir) { if (animationFinished) { var availableRequests = player.getAvailableActions(dir); if (availableRequests.Length > 0) { player.recieveRequest(availableRequests[0]); if (player.request is Move) { camAnim = new MoveCamera(cam, dir); } else { camAnim = new BounceCamera(cam, dir); } } } }
void Update() { HandleInput(); if (player.hasRequest) { dng.requestUpdate(this); } if (!animationFinished && requestResponse != Response.Empty) { if (requestResponse == Response.Allow) { if (camAnim.done) { camAnim = null; requestResponse = Response.Empty; } else { camAnim.Update(); } } else if (requestResponse == Response.Deny) { var mc = camAnim as MoveCamera; if (mc != null) { var dir = mc.dir; camAnim = new BounceCamera(cam, dir); requestResponse = Response.Allow; } else { camAnim = null; requestResponse = Response.Empty; } } } }
// Update is called once per frame public void OnInputEventShield(InputAction.CallbackContext context) { if (CanGenerateShield()) { ResetShield(); mEquipShieldAudio.Play(); CameraAnimation.Shake(0.08f, 0.09f); float shielRadius = Mathf.Max(gameObject.GetComponent <SpriteRenderer>().bounds.size.x, gameObject.GetComponent <SpriteRenderer>().bounds.size.y) + mRadiusFromGameObject; float angleIncrement = (2.0f * Mathf.PI) / mPartsNum; for (int part = 0; part < mPartsNum; ++part) { Vector3 offset = shielRadius * new Vector3(Mathf.Cos(angleIncrement * part), Mathf.Sin(angleIncrement * part), 0.0f); GameObject shieldPart = Instantiate(mPrefab, gameObject.transform.position + offset, Quaternion.identity); shieldPart.transform.parent = gameObject.transform; mParts.Add(shieldPart); } StartShieldCooldown(); } }
public IEnumerator StageViewCoroutine() { CameraAnimation ca = Camera.main.GetComponent <CameraAnimation>(); CameraControl cc = Camera.main.GetComponent <CameraControl>(); float x = cc.MaxCameraPosX; float y = cc.MaxCameraPosY; float size = cc.MaxCameraSize; float fitime = 0.5f; float fotime = 0.5f; float mvtime = 3f; ca.FadeIn(fitime); ca.MoveTo(x, y, mvtime); ca.OrthographicSizeTo(size, mvtime); yield return(new WaitForSeconds(mvtime - fitime)); ca.FadeOut(fotime); yield return(new WaitForSeconds(fotime)); cc.SetDefault(); ca.FadeIn(fitime, gameObject, "OnComplete"); }
private IReadOnlyList <VmdCameraFrame> CreateCameraFrames([NotNull] CharacterImasMotionAsset cameraMotion, uint fixedFov) { var animation = CameraAnimation.CreateFrom(cameraMotion); var animationFrameCount = animation.CameraFrames.Count; var cameraFrameList = new List <VmdCameraFrame>(); for (var i = 0; i < animationFrameCount; ++i) { if (_conversionConfig.Transform60FpsTo30Fps) { if (i % 2 == 1) { continue; } } int frameIndex; if (_conversionConfig.Transform60FpsTo30Fps) { frameIndex = i / 2; } else { frameIndex = i; } var frame = animation.CameraFrames[i]; var vmdFrame = new VmdCameraFrame(frameIndex); var pos = new Vector3(frame.PositionX, frame.PositionY, frame.PositionZ); pos = pos.FixUnityToOpenTK(); if (_conversionConfig.ScaleToVmdSize) { pos = pos * _scalingConfig.ScaleUnityToVmd; } vmdFrame.Position = pos; var target = new Vector3(frame.TargetX, frame.TargetY, frame.TargetZ); target = target.FixUnityToOpenTK(); if (_conversionConfig.ScaleToVmdSize) { target = target * _scalingConfig.ScaleUnityToVmd; } var delta = target - pos; vmdFrame.Length = delta.Length; var lookAtMatrix = Matrix4.LookAt(pos, target, Vector3.UnitY); var q = lookAtMatrix.ExtractRotation(); var rot = q.DecomposeRad(); rot.Z = MathHelper.DegreesToRadians(frame.AngleZ); rot.Y = MathHelper.Pi - rot.Y; if (rot.Y < 0) { rot.Y += MathHelper.TwoPi; } if (delta.Z < 0) { rot.Y = -(MathHelper.Pi + rot.Y); } if (rot.X < -MathHelper.PiOver2) { rot.X = rot.X + MathHelper.Pi; } else if (rot.X > MathHelper.PiOver2) { rot.X = -(MathHelper.Pi - rot.X); } rot.X = -rot.X; rot.Y -= MathHelper.Pi; vmdFrame.Orientation = rot; // VMD does not have good support for animated FOV. So here just use a constant to avoid "jittering". // The drawback is, some effects (like the first zooming cut in Shooting Stars) will not be able to achieve. //var fov = FocalLengthToFov(frame.FocalLength); //vmdFrame.FieldOfView = (uint)fov; vmdFrame.FieldOfView = fixedFov; cameraFrameList.Add(vmdFrame); } return(cameraFrameList); }
void AnimateCamera() { if (cameraAnim == CameraAnimation.None) { return; } Vector3 targetTranslate = new Vector3(0, 0, -2); // Ortho position if (cameraAnim == CameraAnimation.IntoPersp) { targetTranslate = new Vector3(0, -0.5f, -0.5f); // Persp position } if (Vector3.Distance(gameCamera.transform.position, targetTranslate) < 0.001f) { gameCamera.transform.localPosition = targetTranslate; if (cameraAnim == CameraAnimation.IntoOrtho) { gameCamera.orthographic = true; } cameraAnim = CameraAnimation.None; } gameCamera.transform.position = Vector3.MoveTowards(gameCamera.transform.position, targetTranslate, Time.deltaTime * cameraSpeed); gameCamera.transform.LookAt(new Vector3(0, 0, 0)); float distance = gameCamera.transform.position.magnitude; gameCamera.fieldOfView = Mathf.Rad2Deg * 2 * Mathf.Atan(0.5f / distance); }
void Awake() { cameraAnimation = Camera.main.GetComponentInParent <CameraAnimation>(); }
public void PlayAnimation(Collider target, CameraAnimation camAnim) { mainCam.animControl.PlayAnimation(target, camAnim); }
public override void Reset() { _animation = null; }
void Start() { atAniFinish = false; pc = player.GetComponent<PlayerControls> (); dc = destroyControlsObj.GetComponent<DestroyControls> (); cameraAni = startAnimationObject.GetComponent<CameraAnimation> (); playedStart = false; doOnce = false; isTempLook = false; forward = this.transform.forward; updateOffset (); allowedObjs = new string[2]{"Player", "Ceiling"}; length = Mathf.Sqrt (height * height + distance * distance) - player.transform.localScale.x / 2.0f; targetRotation = Vector3.zero; }
void Awake() { instance = this; }
// Start is called before the first frame update void Start() { cam = GameObject.Find("Main Camera").GetComponent <CameraAnimation>(); menu = GameObject.Find("Main").GetComponent <Menu>(); }
private void Awake() { camAnim = Camera.main.GetComponent <CameraAnimation> (); }
void CycleCamera() { if (gameCamera.orthographic) { cameraAnim = CameraAnimation.IntoPersp; gameCamera.orthographic = false; } else { cameraAnim = CameraAnimation.IntoOrtho; } }