Example #1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        BluePart BP = (BluePart)target;

        if (GUILayout.Button("Break"))
        {
            BP.Break();
        }
    }
    void SpawnExplosion(Vector3 Start)
    {
        LastPos = Start;

        if (Start != Vector3.zero)
        {
            Collider[] hitColliders = Physics.OverlapSphere(Start, Radius);

            int i = 0;
            while (i < hitColliders.Length)
            {
                try
                {
                    BluePart Part = hitColliders[i].GetComponent <BluePart>();

                    if (Part != null)
                    {
                        Part.Break();
                    }
                }catch {}

                try
                {
                    Rigidbody R = hitColliders[i].GetComponent <Rigidbody>();

                    if (R != null)
                    {
                        Vector3 Direction = hitColliders[i].transform.position - Start;
                        float   percent   = (Vector3.Distance(hitColliders[i].transform.position, Start)) / (Radius);
                        if (percent > 1)
                        {
                            percent = 1;
                        }
                        percent = Magnitude * (1 - percent);

                        R.AddForce(Direction.normalized * percent);
                    }
                }catch {}

                i++;
            }
        }
    }