예제 #1
0
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.layer == 13)  //NUt
        {
            Nut nut = collision.gameObject.GetComponent <Nut>();

            TakeNut(nut); // TODO: event manager y pool object
            nut.gameObject.SetActive(false);
        }

        if (collision.gameObject.layer == 14) //HazleNUt
        {
            HazelNut Hazelnut = collision.gameObject.GetComponent <HazelNut>();

            TakeHazelNut(Hazelnut); // TODO: event manager y pool object
            Hazelnut.gameObject.SetActive(false);
        }
    }
예제 #2
0
 private void ShouldShootHazelnut()
 {
     if (listParabolicNut.Count > 0)
     {
         HazelNut p   = listParabolicNut[0];
         Vector3  sp  = Camera.main.WorldToScreenPoint(transform.position);
         Vector3  vel = (Input.mousePosition - sp).normalized;
         predictHazelNut(p.rb, vel * velocityParabolicNut);
         //setTrajectoryPoints(shootZone.position, vel * velocityPineNut);
         //    if (Input.GetMouseButtonDown(0))
         if (MyInputManager.instance.GetButtonDown("Shoot"))
         {
             Debug.Log(vel);
             Debug.Log(vel + transform.forward);
             p.addImpulse(shootZone.position, vel + transform.forward, velocityParabolicNut);
             listParabolicNut.RemoveAt(0);
         }
     }
 }
예제 #3
0
    //void setTrajectoryPoints(Vector3 pStartPosition, Vector3 pVelocity)
    //{
    //    float velocity = Mathf.Sqrt((pVelocity.x * pVelocity.x) + (pVelocity.y * pVelocity.y) );
    //    float angle = Mathf.Rad2Deg * (Mathf.Atan2(pVelocity.y, pVelocity.x));
    //    float fTime = 0;

    //    //fTime += 0.1f;
    //    for (int i = 0; i < quantityOfPoints; i++)
    //    {
    //        float dx = velocity * fTime * Mathf.Cos(angle * Mathf.Deg2Rad);
    //        float dy = velocity * fTime * Mathf.Sin(angle * Mathf.Deg2Rad) - (Physics2D.gravity.magnitude * fTime * fTime / 2.0f);
    //        Vector3 pos = new Vector3(pStartPosition.x + dx, pStartPosition.y + dy);
    //        trayectoryPoints[i] = pos;
    //        fTime += 0.1f;
    //    }
    //}

    internal void TakeHazelNut(HazelNut hz)
    {
        listParabolicNut.Add(hz);
    }
예제 #4
0
 public ShootHazleNut(HazelNut prefabHazleNut, float hazleShootVelocity)
 {
     this.prefabHazleNut     = prefabHazleNut;
     this.hazleShootVelocity = hazleShootVelocity;
 }