- Home /
Question by
Sepehr M · May 21, 2014 at 12:11 PM ·
2d gamecharacter.move
unity 2d coding problem
hi there i have a problem with my 2d character again...i fixed my previous problems but the new problem is that,that i cant make my character punchin...he walks,he jumps pretty well but i'm in some problem with punchin movement or anything like this...i made a punch animation and i made a transation to the idle and from idle to puch in the animator window...and also i made a trigger parameter but my code dosent work...may be the code i wrote is completley worng...if thats wrong please tell me what shout id do? thanks
using UnityEngine;
using System.Collections;
public class ScrorpionControllerScript : MonoBehaviour
{
public float maxSpeed = 10f;
bool facingRight = true;
Animator anim;
bool grounded = false;
public Transform groundCheck;
float groundRadius = 0.2f;
public LayerMask whatIsGround;
float jumpTime, jumpDelay = 0.2f;
bool jumped;
float punchTime, punchDelay = .5f;
bool punch;
// Use this for initialization
void Start ()
{
anim = GetComponent<Animator> ();
}
// Update is called once per frame
void FixedUpdate ()
{
grounded = Physics2D.OverlapCircle (groundCheck.position, groundRadius, whatIsGround);
anim.SetBool ("Ground", grounded);
anim.SetFloat ("vSpeed", rigidbody2D.velocity.y);
anim.SetBool ("Ground", grounded);
float move = Input.GetAxis ("Horizontal");
anim.SetFloat ("wa", Mathf.Abs (move));
rigidbody2D.velocity = new Vector2(move * maxSpeed, rigidbody2D.velocity.y);
if(move > 0 &&! facingRight)
Flip ();
else if (move < 0 && facingRight)
Flip ();
}
void Update()
{
if(Input.GetKeyDown (KeyCode.Space) && grounded)
{
rigidbody2D.AddForce(transform.up * 275f);
jumpTime = jumpDelay;
anim.SetTrigger("Jump");
jumped = true;
}
jumpTime -= Time.deltaTime;
if (jumpTime <= 0 && grounded && jumped)
{
anim.SetTrigger ("Land");
jumped = false;
}
if (Input.GetKeyDown (KeyCode.R));
{
punchTime = punchDelay;
anim.SetTrigger("punch");
punch = true;
}
}
void Flip()
{
facingRight = !facingRight;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}
Comment