void OnCollisionExit2D(Collision2D collision) { if (collision.collider.gameObject.layer == LayerMask.NameToLayer("Platforms")) { maxSpeedAir = 20; maxSpeedGround = 20; // jumpAvailable = false; // isGrounded = false; //Debug.Log(isGrounded+" -- " +collision.collider.name); if (this.gameObject.activeSelf) { this.transform.SetParent(null); } } if (collision.collider.gameObject.tag == "MovingPlatform") { FrictionJoint2D rb2d = collision.gameObject.GetComponent <FrictionJoint2D>(); rb2d.connectedBody = null; } if (collision.collider.gameObject.tag == "SmallPlatform") { FrictionJoint2D rb2d = collision.gameObject.GetComponent <FrictionJoint2D>(); rb2d.connectedBody = null; } if (collision.collider.gameObject.tag == "Spring") { // isGrounded = false; maxSpeedAir = 20; maxSpeedGround = 20; } }
private void Awake() { _controller = GetComponent <CharacterController>(); _rb = GetComponent <Rigidbody2D>(); _minHangDistance = GameManager.Instance.minHangDistance; _maxHangDistance = GameManager.Instance.maxHangDistance; _joint = GetComponent <DistanceJoint2D>(); _friction = GetComponent <FrictionJoint2D>(); _joint.autoConfigureDistance = false; _joint.enabled = false; _friction.enabled = false; _friction.enableCollision = true; _maxSelectDistance = GameManager.Instance.maxStarSelectDistance; enabled = GameManager.Instance.ShouldEnableGrappler(); }
public static int get_maxTorque(IntPtr l) { int result; try { FrictionJoint2D frictionJoint2D = (FrictionJoint2D)LuaObject.checkSelf(l); LuaObject.pushValue(l, true); LuaObject.pushValue(l, frictionJoint2D.maxTorque); result = 2; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
private void Update() { if (excellent && DontIceCream) { rb.velocity = Vector2.zero; coll.sharedMaterial = ExMaterial; gameObject.AddComponent <FrictionJoint2D>(); FrictionJoint2D frictionJoint = GetComponent <FrictionJoint2D>(); frictionJoint.connectedBody = LastBall.GetComponent <Rigidbody2D>(); frictionJoint.maxTorque = 200; frictionJoint.breakForce = 3; frictionJoint.enableCollision = true; Excellent.transform.position = gameObject.transform.position - new Vector3(0.0f, 0.0538f, 0.0f); DontIceCream = false; } }
public static int set_maxForce(IntPtr l) { int result; try { FrictionJoint2D frictionJoint2D = (FrictionJoint2D)LuaObject.checkSelf(l); float maxForce; LuaObject.checkType(l, 2, out maxForce); frictionJoint2D.maxForce = maxForce; LuaObject.pushValue(l, true); result = 1; } catch (Exception e) { result = LuaObject.error(l, e); } return(result); }
void OnCollisionEnter2D(Collision2D collision) { if (collision.collider.gameObject.layer == LayerMask.NameToLayer("Platforms")) { this.transform.SetParent(collision.transform); numberOfBounces = 1; if (playHitSound) { audioS.PlayOneShot(groundSound, 1F); playHitSound = false; } } if (collision.collider.gameObject.layer == LayerMask.NameToLayer("FallingPlatforms")) { numberOfBounces = 1; if (playHitSound) { audioS.PlayOneShot(groundSound, 1F); playHitSound = false; } } if (collision.collider.gameObject.tag == "FastPlatform") { maxSpeedAir = 100; maxSpeedGround = 100; rb.AddForce(Vector2.right * hAxis * moveSpeed * 10f, ForceMode2D.Impulse); numberOfBounces = 1; if (playHitSound) { audioS.PlayOneShot(impulseSound, 1F); playHitSound = false; } } if (collision.collider.gameObject.tag == "FastPlatformx2") { rb.AddForce(Vector2.right * moveSpeed * 8f, ForceMode2D.Impulse); numberOfBounces = 1; if (playHitSound) { audioS.PlayOneShot(impulseSound, 1F); playHitSound = false; } } if (collision.collider.gameObject.tag == "MovingPlatform") { FrictionJoint2D rb2d = collision.gameObject.GetComponent <FrictionJoint2D>(); numberOfBounces = 1; rb2d.connectedBody = rb; collision.gameObject.GetComponent <PlatformMove>().activate = true; if (playHitSound) { audioS.PlayOneShot(groundSound, 1F); playHitSound = false; } } if (collision.collider.gameObject.tag == "SmallPlatform") { FrictionJoint2D rb2d = collision.gameObject.GetComponent <FrictionJoint2D>(); numberOfBounces = 1; rb2d.connectedBody = rb; if (playHitSound) { audioS.PlayOneShot(groundSound, 1F); playHitSound = false; } } if (collision.gameObject.CompareTag("Spring")) { audioS.PlayOneShot(springSound, 1F); colAngle = Vector2.Angle(-collision.contacts[0].normal, new Vector2(collision.transform.up.x, collision.transform.up.y)); if (colAngle > 120) { numberOfBounces += 0.1f; rb.AddForce((transform.up * 35) * numberOfBounces, ForceMode2D.Impulse); } } }
// Use this for initialization void Start() { _frictionJoint = GetComponent <FrictionJoint2D>(); _boosterText.text = ""; }
private void Awake() { myJoint = GetComponent <FrictionJoint2D>(); rb = GetComponent <Rigidbody2D>(); }
public static Tween TweenMaxForce(this FrictionJoint2D joint, float to, float duration) => Tweening.To(getter: () => joint.maxForce, setter: maxForce => joint.maxForce = maxForce, to, duration).SetTarget(joint);
// public void ApplyAnchors(Joint2D joint) { // if (jointType == JointType2D.RelativeJoint2D) // return; // if (jointType == JointType2D.TargetJoint2D) { // ((TargetJoint2D) joint).anchor = anchor; // ((TargetJoint2D) joint).target = target; // needs to be world relative // return; // } // ((AnchoredJoint2D) joint).anchor = anchor; // ((AnchoredJoint2D) joint).connectedAnchor = connectedAnchor; // } // public void ApplyLimits(Joint2D joint, GameObject go, Rigidbody2D connectedBody) { // if (jointType != JointType2D.HingeJoint2D) // return; // Quaternion startRotation = go.transform.rotation; // if (useLimits && limits.relativeTo == AngleLimitsRelativeTo.ZeroRotation && connectedBody) { // go.transform.rotation = connectedBody.transform.rotation; // // setting the connectedBody triggers a re-calculation of the reference angle // joint.connectedBody = connectedBody; // } // ((HingeJoint2D) joint).limits = limits.ToJointAngleLimits2D(); // if (useLimits && limits.relativeTo == AngleLimitsRelativeTo.ZeroRotation && connectedBody) // go.transform.rotation = startRotation; // } public Joint2D CreateOrApply(GameObject go, Rigidbody2D connectedBody, Joint2D joint = null) { if (joint && !JointMatchesJointType(joint)) { GameObject.Destroy(joint); joint = null; } if (jointType == JointType2D.DistanceJoint2D) { DistanceJoint2D distanceJoint = (DistanceJoint2D)joint ?? go.AddComponent <DistanceJoint2D>(); ConfigureAnchoredJoint(distanceJoint, connectedBody); distanceJoint.maxDistanceOnly = maxDistanceOnly; distanceJoint.autoConfigureDistance = autoConfigureDistance; if (!autoConfigureDistance) { distanceJoint.distance = distance; } joint = distanceJoint; } if (jointType == JointType2D.FixedJoint2D) { FixedJoint2D fixedJoint = (FixedJoint2D)joint ?? go.AddComponent <FixedJoint2D>(); ConfigureAnchoredJoint(fixedJoint, connectedBody); fixedJoint.frequency = frequency; fixedJoint.dampingRatio = dampingRatio; joint = fixedJoint; } if (jointType == JointType2D.FrictionJoint2D) { FrictionJoint2D frictionJoint = (FrictionJoint2D)joint ?? go.AddComponent <FrictionJoint2D>(); ConfigureAnchoredJoint(frictionJoint, connectedBody); frictionJoint.maxForce = maxFrictionForce; frictionJoint.maxTorque = maxFrictionTorque; joint = frictionJoint; } if (jointType == JointType2D.HingeJoint2D) { Quaternion startRotation = go.transform.rotation; // if (useLimits && limits.relativeTo == AngleLimitsRelativeTo.ZeroRotation && connectedBody) // go.transform.rotation = connectedBody.transform.rotation; HingeJoint2D hingeJoint = (HingeJoint2D)joint ?? go.AddComponent <HingeJoint2D>(); ConfigureAnchoredJoint(hingeJoint, connectedBody); hingeJoint.limits = limits.ToJointAngleLimits2D(); hingeJoint.useLimits = useLimits; JointMotor2D m = new JointMotor2D(); m.maxMotorTorque = motor.maxMotorTorque; m.motorSpeed = motor.motorSpeed; hingeJoint.motor = m; hingeJoint.useMotor = useMotor; joint = hingeJoint; // if (useLimits && limits.relativeTo == AngleLimitsRelativeTo.ZeroRotation && connectedBody) // go.transform.rotation = startRotation; } if (jointType == JointType2D.RelativeJoint2D) { RelativeJoint2D relativeJoint = (RelativeJoint2D)joint ?? go.AddComponent <RelativeJoint2D>(); ConfigureJoint(relativeJoint, connectedBody); relativeJoint.autoConfigureOffset = autoConfigureOffset; if (!autoConfigureOffset) { relativeJoint.linearOffset = linearOffset; relativeJoint.angularOffset = angularOffset; } relativeJoint.correctionScale = correctionScale; relativeJoint.maxForce = maxForce; relativeJoint.maxTorque = maxTorque; joint = relativeJoint; } if (jointType == JointType2D.SliderJoint2D) { SliderJoint2D sliderJoint = (SliderJoint2D)joint ?? go.AddComponent <SliderJoint2D>(); ConfigureAnchoredJoint(sliderJoint, connectedBody); joint = sliderJoint; } if (jointType == JointType2D.SpringJoint2D) { SpringJoint2D springJoint = (SpringJoint2D)joint ?? go.AddComponent <SpringJoint2D>(); ConfigureAnchoredJoint(springJoint, connectedBody); springJoint.autoConfigureDistance = autoConfigureDistance; if (!autoConfigureDistance) { springJoint.distance = distance; } springJoint.dampingRatio = dampingRatio; springJoint.frequency = frequency; joint = springJoint; } if (jointType == JointType2D.TargetJoint2D) { TargetJoint2D targetJoint = (TargetJoint2D)joint ?? go.AddComponent <TargetJoint2D>(); targetJoint.autoConfigureTarget = false; targetJoint.anchor = anchor; targetJoint.target = target; targetJoint.maxForce = maxForce; targetJoint.dampingRatio = dampingRatio; targetJoint.frequency = frequency; joint = targetJoint; } if (jointType == JointType2D.WheelJoint2D) { WheelJoint2D wheelJoint = (WheelJoint2D)joint ?? go.AddComponent <WheelJoint2D>(); ConfigureJoint(wheelJoint, connectedBody); joint = wheelJoint; } return(joint); }