Beispiel #1
0
    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;
        }
    }
Beispiel #2
0
    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();
    }
Beispiel #3
0
 private void Awake()
 {
     camera          = Camera.main;
     cameraAnimation = GetComponent <CameraAnimation>();
     cameraAnimation.SetContinuingAction(MoveSlowly);
     cameraAnimation.SetStopAction(MoveToTheTargetPosition);
 }
Beispiel #4
0
    /// <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);
    }
Beispiel #5
0
        public Camera(Renderer Renderer)
        {
            this.Renderer = Renderer;

            Animation = new CameraAnimation();

            RecalculateMatrices();
        }
Beispiel #6
0
    // 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);
        }
    }
Beispiel #9
0
 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);
    }
Beispiel #13
0
    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);
        }
    }
Beispiel #14
0
    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);
    }
Beispiel #15
0
    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));
    }
Beispiel #16
0
        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);
 }
Beispiel #19
0
 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());
     }
 }
Beispiel #20
0
    // 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);
    }
Beispiel #21
0
    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);
                }
            }
        }
    }
Beispiel #22
0
    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();
        }
    }
Beispiel #24
0
        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");
        }
Beispiel #25
0
        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);
    }
Beispiel #27
0
 void Awake()
 {
     cameraAnimation = Camera.main.GetComponentInParent <CameraAnimation>();
 }
Beispiel #28
0
 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;
 }
Beispiel #31
0
 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;
     }
 }