internal void CreateCorpseParts(Vector3 position) { for (int i = 0; i < 10; i++) { CorpsePart cp = Instantiate(corpsePartPrefab); cp.transform.position = position; cp.FlyToTarget(MapController.Instance.GetRandomTargetTile()); } }
private void AddRigidBodyAndForce(CorpsePart part, float minXForce, float maxXForce, float minYForce, float maxYForce, float minRot, float maxRot, float gravity = 1.5f) { Rigidbody2D rb = part.gameObject.AddComponent <Rigidbody2D>(); float xForce = Random.Range(minXForce, maxXForce); float yForce = Random.Range(minYForce, maxYForce); float rotSpeed = Random.Range(minRot, maxRot); rb.angularVelocity = rotSpeed; rb.velocity = new Vector2(xForce, yForce); }
public void PopHead() { CorpsePart head = GetPart(CorpsePart.PartType.Head); if (head == null) { return; } AddRigidBodyAndForce(head, -2f, 2f, 5f, 15f, -360f, 360f); GameObject blood = Instantiate(bloodFountain, bloodLocation.position, bloodLocation.transform.rotation) as GameObject; blood.transform.SetParent(bloodLocation, true); //Destroy(blood, 5f); }
public void Explode() { int count = bodyParts.Length; for (int i = 0; i < count; i++) { CorpsePart currentPart = bodyParts[i]; AddRigidBodyAndForce(currentPart, -5f, 5f, 5f, 15f, -1080f, 1080f, 1.5f); //Rigidbody2D rb = currentPart.gameObject.AddComponent<Rigidbody2D>(); //rb.gravityScale = 1.5f; //float randomRotation = Random.Range(-1080f, 1080f); //rb.angularVelocity = randomRotation; //float xForce = Random.Range(-5f, 5f); //float yForce = Random.Range(5f, 15f); //rb.velocity = new Vector2(xForce, yForce); } }