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); } }
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); } } }
//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); }
public ShootHazleNut(HazelNut prefabHazleNut, float hazleShootVelocity) { this.prefabHazleNut = prefabHazleNut; this.hazleShootVelocity = hazleShootVelocity; }