- Home /
Question by
Art1511 · Jun 30, 2014 at 09:35 PM ·
movementplatformboxcollider
Bug in Moving Platform
My game have a player with this Physics Script:
[RequireComponent (typeof(BoxCollider))]
public class PlayerPhysics : MonoBehaviour {
public LayerMask collisionMask;
private BoxCollider colliders;
private Vector3 s;
private Vector3 c;
private float skin = .005f;
[HideInInspector]
public bool grounded;
Ray ray;
RaycastHit hit;
void Start() {
colliders = GetComponent<BoxCollider>();
s = colliders.size;
c = colliders.center;
}
public void Move(Vector2 moveAmount) {
float deltaY = moveAmount.y;
float deltaX = moveAmount.x;
Vector2 p = transform.position;
// Check collisions above and below
grounded = false;
for (int i = 0; i<3; i ++) {
float dir = Mathf.Sign(deltaY);
float x = (p.x + c.x - s.x/2) + s.x/2 * i; // Left, centre and then rightmost point of collider
float y = p.y + c.y + s.y/2 * dir; // Bottom of collider
ray = new Ray(new Vector2(x,y), new Vector2(0,dir));
Debug.DrawRay(ray.origin,ray.direction);
if (Physics.Raycast(ray,out hit,Mathf.Abs(deltaY),collisionMask)) {
// Get Distance between player and ground
float dst = Vector3.Distance (ray.origin, hit.point);
// Stop player's downwards movement after coming within skin width of a collider
if (dst > skin) {
deltaY = dst * dir + skin;
}
else {
deltaY = 0;
}
grounded = true;
break;
}
}
Vector2 finalTransform = new Vector2(deltaX,deltaY);
transform.Translate(finalTransform);
}
}
And this is the Moving Platform Script:
var pointB : Transform;
private var pointA : Vector3;
var speed = 1.0;
function Start () {
pointA = transform.position;
while (true) {
var i = Mathf.PingPong(Time.time * speed, 1);
transform.position = Vector3.Lerp(pointA, pointB.position, i);
yield;
}
}
So, when the player cross the platform, he follow down. Its like the platform does't have a Box Collider. I try many solutions that i find but nothing works.
Comment
Your answer

Follow this Question
Related Questions
Box collider (with Rigidbody attached) gets stuck into another Box Collider 0 Answers
GameObject B does not collide with GameObject A 1 Answer
Simple Topdown Movement Problem 1 Answer
Sphere overlaps vertical box collider and stutters 1 Answer
Moving platform script makes my player unable to move 3 Answers