public bool FixedUpdate(_TouchListener listener) { // Touching stopped if (touchedLastStep && !touchedThisStep) { listener.SendMessage(TouchMethods.OnTouchEnd, this, SendMessageOptions.DontRequireReceiver); return true; // <- remove me } // Touching continues if (touchedThisStep) { listener.SendMessage(TouchMethods.OnTouch, this, SendMessageOptions.DontRequireReceiver); } touchedLastStep = touchedThisStep; touchedThisStep = false; return false; // <- keep me }
void RaycastGround() { RaycastHit hit; bool old_grounded = grounded; if (Physics.Raycast(transform.position + Vector3.up * groundDist, Vector3.down, out hit, groundDist * 2, groundLayer)) { grounded = Vector3.Angle(hit.normal, Vector3.up) <= slopeLimit; // Push away from the cliff //outsideMotion = hit.normal.SetY(0) * slopeForce * (1 - Mathf.Abs(hit.normal.y)); GameObject main = hit.collider.attachedRigidbody ? hit.collider.attachedRigidbody.gameObject : hit.collider.gameObject; // Send touch events _TouchListener listener = main.GetComponent <_TouchListener>(); if (listener) { listener.Touch(this); } // Get the current platform platform = main.GetComponent <_Platform>(); lastHit = hit; } else { outsideMotion = Vector3.zero; grounded = false; platform = null; lastHit = null; } // /grounded/ changed if (old_grounded != grounded) { if (grounded && sound) { sound.OnGrounded(); } } }
public bool FixedUpdate(_TouchListener listener) { // Touching stopped if (touchedLastStep && !touchedThisStep) { listener.SendMessage(TouchMethods.OnTouchEnd, this, SendMessageOptions.DontRequireReceiver); return(true); // <- remove me } // Touching continues if (touchedThisStep) { listener.SendMessage(TouchMethods.OnTouch, this, SendMessageOptions.DontRequireReceiver); } touchedLastStep = touchedThisStep; touchedThisStep = false; return(false); // <- keep me }