private void HandleSplitEnd(List <D2dDestructible> splitDestructibles, D2dDestructible.SplitMode mode) { if (Prefab != null) { var clone = Instantiate(Prefab, transform.position, Quaternion.identity); clone.SetActive(true); } }
private void HandleEndSplit(List <D2dDestructible> destructibles, D2dDestructible.SplitMode mode) { for (var i = destructibles.Count - 1; i >= 0; i--) { var destructible = destructibles[i]; if (TryFixTo(destructible) == true) { return; } } DestroyFixture(); }
private void HandleSplitEnd(List <D2dDestructible> splitDestructibles, D2dDestructible.SplitMode mode) { if (splitDestructibles.Count > 0 && (applyTo == D2dDestructible.SplitMode.All || applyTo == mode)) { var center = Vector2.zero; for (var i = splitDestructibles.Count - 1; i >= 0; i--) { var splitRigidbody2D = splitDestructibles[i].GetComponent <Rigidbody2D>(); var splitCenter = (Vector2)splitRigidbody2D.transform.TransformPoint(splitRigidbody2D.centerOfMass); center += splitCenter; } center /= splitDestructibles.Count; for (var i = splitDestructibles.Count - 1; i >= 0; i--) { var splitRigidbody2D = splitDestructibles[i].GetComponent <Rigidbody2D>(); var splitCenter = (Vector2)splitRigidbody2D.transform.TransformPoint(splitRigidbody2D.centerOfMass); var vector = splitCenter - center; var distance = vector.magnitude; if (distance == 0.0f) { var a = Random.Range(-Mathf.PI, Mathf.PI); vector.x = Mathf.Sin(a); vector.y = Mathf.Cos(a); } splitRigidbody2D.AddForce(vector.normalized * strength, ForceMode2D.Impulse); } } }
protected override void HandleSplitEnd(List <D2dDestructible> splitDestructibles, D2dDestructible.SplitMode mode) { base.HandleSplitEnd(splitDestructibles, mode); for (var i = splitDestructibles.Count - 1; i >= 0; i--) { var splitDestructible = splitDestructibles[i]; var polygonCollider = splitDestructible.GetComponent <D2dPolygonCollider>(); if (polygonCollider != null) { polygonCollider.Rebuild(); } } }
protected virtual void HandleSplitEnd(List <D2dDestructible> splitDestructibles, D2dDestructible.SplitMode mode) { ReconnectChild(); }
protected virtual void HandleSplitEnd(List <D2dDestructible> splitDestructibles, D2dDestructible.SplitMode mode) { for (var i = splitDestructibles.Count - 1; i >= 0; i--) { var splitDestructible = splitDestructibles[i]; if (splitDestructible.gameObject != gameObject) { var splitRigidbody2D = splitDestructible.GetComponent <Rigidbody2D>(); if (splitRigidbody2D != null) { splitRigidbody2D.velocity += velocity; splitRigidbody2D.angularVelocity += angularVelocity; } } } }