Search Unity

"Jump" and animation problem on unity.

Discussion in '2D' started by sportifsisman, Aug 1, 2020.

  1. sportifsisman

    sportifsisman

    Joined:
    Jul 17, 2020
    Posts:
    20
    hi there. I am really new on unity and c#. And ı have a problem. I am doing a platform game on unity by looking a book. but ı have problem. I want to get jumped the character. but I wrote everything that is written in the book. but it did not jump. Iwill share my codes, and animator settings wityh you. if could you help me ı would be greatful.
    my codes;
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class ZiplaBehaviour : StateMachineBehaviour
    {
    // 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)
    {
    Player.Ornek.Zipla = true;
    }

    // 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)
    {
    Player.Ornek.Zipla = false;
    }

    // OnStateMove is called right after Animator.OnAnimatorMove()
    //override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    //{
    // // Implement code that processes and affects root motion
    //}

    // OnStateIK is called right after Animator.OnAnimatorIK()
    //override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    //{
    // // Implement code that sets up animation IK (inverse kinematics)
    //}
    }

    Controllers;
    private void Kontroller()
    {
    if(Input.GetKeyDown(KeyCode.U))
    {
    myAnimator.SetTrigger("zipla");
    }

    if(Input.GetKeyDown(KeyCode.T))
    {
    myAnimator.SetTrigger("atak");
    }

    if(Input.GetKeyDown(KeyCode.Y))
    {
    myAnimator.SetTrigger("kayma");
    }
    }

    I also post ımage which incloude my animator setting.
    besides, zipla means "jump" in turkish.
    thanks ahead;)
     

    Attached Files:

  2. kukurenaiz

    kukurenaiz

    Joined:
    Sep 12, 2017
    Posts:
    57
    You need to check input every frame, are you calling the Kontroller method in the Update of a MonoBehaviour that's attached to a GameObject in your scene?
    Your first script is a StateMachineBehaviour, it will run when you're in the particular animation in which that script is attached, so you need to attach that to an animation.
    Some possible sources, but it's hard to say what could be causing the problem.
     
  3. sportifsisman

    sportifsisman

    Joined:
    Jul 17, 2020
    Posts:
    20
    Thanks for your support but. ı forget to sat that Slide and attack animation run properly. they also have same script files and control in same function. and when ı check the frames of animations, there is no problem they are running properly. and ı check that my animations are attached to my gameobject.