Esempio n. 1
0
    void SetupColliders()
    {
        _GenSphereColliders = new VerletNode.SphereColliderData[SphereColliders.Length];
        for (int i = 0; i < SphereColliders.Length; i++)
        {
            var capsuleComp = SphereColliders[i].GetComponent <CapsuleCollider>();
            var sphereComp  = SphereColliders[i].GetComponent <SphereCollider>();

            float radius = 0;
            float height = 0;

            AxisLabel axis = AxisLabel.Y;
            if (capsuleComp != null)
            {
                radius = capsuleComp.radius;
                height = capsuleComp.height;
                switch (capsuleComp.direction)
                {
                case 0:
                    axis = AxisLabel.X;
                    break;

                case 1:
                    axis = AxisLabel.Y;
                    break;

                case 2:
                    axis = AxisLabel.Z;
                    break;
                }
            }
            else if (sphereComp != null)
            {
                radius = sphereComp.radius;
            }

            _GenSphereColliders[i] = new VerletNode.SphereColliderData()
            {
                KeepOut       = SphereColliders[i].KeepOut,
                Parent        = SphereColliders[i].transform.parent,
                LocalPosition = SphereColliders[i].transform.localPosition,
                UpAxis        = axis,
                Radius        = radius,
                Height        = height,
                Damping       = SphereColliders[i].Damping,
                Bouncyness    = SphereColliders[i].Bouncyness,
            };
        }
    }
Esempio n. 2
0
    void SetupColliders()
    {
        _GenSphereColliders = new VerletNode.SphereColliderData[SphereColliders.Length];
        for (int i = 0; i < SphereColliders.Length; i++)
        {
            var capsuleComp = SphereColliders[i].GetComponent<CapsuleCollider>();
            var sphereComp = SphereColliders[i].GetComponent<SphereCollider>();

            float radius = 0;
            float height = 0;

            AxisLabel axis = AxisLabel.Y;
            if (capsuleComp != null)
            {
                radius = capsuleComp.radius;
                height = capsuleComp.height;
                switch (capsuleComp.direction)
                {
                    case 0:
                        axis = AxisLabel.X;
                        break;
                    case 1:
                        axis = AxisLabel.Y;
                        break;
                    case 2:
                        axis = AxisLabel.Z;
                        break;
                }
            }
            else if (sphereComp != null)
            {
                radius = sphereComp.radius;
            }

            _GenSphereColliders[i] = new VerletNode.SphereColliderData()
            {
                KeepOut = SphereColliders[i].KeepOut,
                Parent = SphereColliders[i].transform.parent,
                LocalPosition = SphereColliders[i].transform.localPosition,
                UpAxis = axis,
                Radius = radius,
                Height = height,
                Damping = SphereColliders[i].Damping,
                Bouncyness = SphereColliders[i].Bouncyness,
            };
        }
    }