Пример #1
0
    private void OnCollisionEnter(Collision collision)
    {
        var hitVelocity = collision.relativeVelocity.magnitude;

        if (hitVelocity >= HitVelocityThreshold)
        {
            var volume = CoolMath.SmoothStep(0.7f * HitVelocityThreshold, 2 * HitVelocityThreshold, hitVelocity);
            MirroredAudioSource.PlayClipAtPoint(CollisionSound, transform.position, volume);
        }
    }
Пример #2
0
    private void TranslateMarkedSpace()
    {
        var grabPos = grabHand.GetGraspPoint();
        var delta   = grabPos - grabSphere.transform.position;

        delta  /= mark.Radius;
        delta.x = Mathf.Sign(delta.x) * CoolMath.SmoothStep(0.1f, 0.2f, Mathf.Abs(delta.x));
        delta.y = Mathf.Sign(delta.y) * CoolMath.SmoothStep(0.1f, 0.2f, Mathf.Abs(delta.y));
        delta.z = Mathf.Sign(delta.z) * CoolMath.SmoothStep(0.1f, 0.2f, Mathf.Abs(delta.z));
        delta   = Time.deltaTime * delta * mark.Radius;
        mark.transform.position += delta;
    }
Пример #3
0
    private void ScaleMarkedSpace()
    {
        var grabVec = (grabHand.GetGraspPoint() - transform.position) - initialGrabOffset;
        var baseVec = grabSphere.transform.position - transform.position;

        var delta = grabVec.magnitude / baseVec.magnitude - 1;

        delta = Mathf.Sign(delta) * CoolMath.SmoothStep(0.05f, 0.3f, Mathf.Abs(delta));
        delta = Time.deltaTime * delta * mark.Radius;
        mark.transform.localScale += new Vector3(delta, delta, delta);
        mark.transform.localScale.Clamp(MinMarkSize, MaxMarkSize);
    }
Пример #4
0
    void Update()
    {
        var dist = Vector3.Distance(Camera.main.transform.position, transform.position);

        float thickness = 0.04f + CoolMath.SmoothStep(1f, 15f, dist) * 0.36f;

        material.SetFloat("Vector1_11B6F0C9", thickness);

        float stripeCount = Mathf.Round(6f + CoolMath.SmoothStep(15f, 1f, dist) * 24f);

        material.SetFloat("Vector1_DD39A7BF", stripeCount);

        material.SetColor("Color_80BB22F3", Color);
    }