Beispiel #1
0
    public void fire(GameObject so)
    {
        this.so = so;
        IPlayerActions im = (IPlayerActions)so.GetComponent <PlayerController>();

        im.setIfCanMove(false);
        im.setIfCanFire(false);
        Rigidbody2D clone = this.GetComponent <Rigidbody2D>();

        clone.gravityScale = 0.0f;
        clone.velocity     = so.transform.TransformDirection(Vector3.left * 10);
        Debug.Log(clone.velocity);
        ctime_reach_end = Time.time;
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        Rigidbody2D clone = this.GetComponent <Rigidbody2D>();

        if (ctime_reach_end != -1 && (Time.time - ctime_reach_end) > time_coming_back)
        {
            checkCollisionWithPlayer = true;
            clone.velocity           = Vector2.zero;  //new Vector2(-clone.velocity.x, so.transform.position.y - this.transform.position.y);//new Vector2(Mathf.Abs(this.transform.position.x - so.transform.position.x), so.transform.position.y - this.transform.position.y);//so.transform.position - this.transform.position;		//				so.transform.TransformDirection(Vector3.right * 10);
            ctime_reach_end          = -1;
            isComingBack             = true;
            IPlayerActions im = (IPlayerActions)so.GetComponent <PlayerController>();
            im.setIfCanMove(true);
        }
        else if (isComingBack)
        {
            //transform.position = Vector3.Lerp(transform.position, so.transform.position, 5.0f*Time.deltaTime);
            Vector3 direction = (so.transform.position - transform.position).normalized;
            clone.MovePosition(transform.position + direction * 10.0f * Time.deltaTime);
            //Debug.Log(clone.velocity);
        }
    }