Hi everyone here’s my problem!
I’m doing a 2D game were i got a ninja that slash when the mouse is press. The slash is a gameobject that get instantiated at the position of a empty gameObject everytime then die really quickly. Problem is when it get instantiated and if my player is moving the slash object is left behind.
What I want is that when the Clone of the slash is instantiated I want it’s position to follow the slash GameObject position every frames. Anyones got an idea. Here’s my code (it’s in the mouseButton Event) :
public class PLayerController : MonoBehaviour {
public float MaxSpeed = 7f;
public bool facingRigth = true;
Animator anim;
bool grounded = false;
public Transform groundCheck;
float groundRadius =0.2f;
public LayerMask whatIsGround;
public float jumpForce = 500;
//Attacking
public Transform slash;
public GameObject slashObjectL;
public GameObject slashObjectR;
// Use this for initialization
void Start ()
{
anim = GetComponent<Animator> ();
}
// Update is called once per frame
void Update ()
{
//Jumping
if(grounded && Input.GetKeyDown(KeyCode.Space))
{
anim.SetBool("Ground", false);
rigidbody2D.AddForce(new Vector2(0,jumpForce));
}
if(Input.GetMouseButtonDown(0))
{
if(facingRigth)
{
GameObject slashLCopy = (GameObject)Instantiate(slashObjectL, slash.position, slash.rotation);
slashLCopy.transform.position = new Vector2(slash.position.x, slash.position.y); //NOT WORKING!!!!!!!
}
if(!facingRigth)
{
GameObject slashRCopy = (GameObject)Instantiate(slashObjectR, slash.position, slash.rotation);
//slashRCopy.transform = slash.position; //NOT WORKING EITHER!!!!
}
}
}
void FixedUpdate()
{
grounded = Physics2D.OverlapCircle(groundCheck.position,groundRadius, whatIsGround);
anim.SetBool("Ground", grounded);
//Jumping
anim.SetFloat("vSpeed", rigidbody2D.velocity.y);
float move = Input.GetAxis ("Horizontal");
anim.SetFloat ("Speed", Mathf.Abs (move));
rigidbody2D.velocity = new Vector2(move * MaxSpeed, rigidbody2D.velocity.y);
if(move > 0 && !facingRigth)
Flip();
if(move < 0 && facingRigth)
Flip();
}
void Flip()
{
facingRigth = !facingRigth;
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}
}