- Home /
Question by
darkknightsaver1 · Jan 18, 2014 at 03:09 AM ·
correction
What's wrong? Says "Physics does not contain a definition for Raycast".
using UnityEngine; using System.Collections; [RequireComponent(typeof(BoxCollider))] public class Physics : MonoBehaviour { public LayerMask collisionmask;
private BoxCollider collider;
private Vector3 s;
private Vector3 c;
private float skin = .005f;
[HideInInspector]
public bool grounded;
Ray ray;
RaycastHit hit;
void Start()
{
collider = GetComponent<BoxCollider> ();
s = collider.size;
c = collider.center;
}
public void move(Vector2 moveamount)
{
float deltax = moveamount.x;
float deltay = moveamount.y;
Vector2 p = transform.position;
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;
float y = p.y + c.y + s.y/2 *dir;
ray = new Ray(new Vector2(x,y), new Vector2(0,dir));
if(Physics.Raycast(ray, out hit,Mathf.Abs(deltay), collisionmask))
{
float dst= Vector3.Distance(ray.origin, hit.point);
if(dst>skin)
{
deltay = -dst + skin;
}
else
{
deltay=0;
}
grounded = true;
break;
}
}
Vector2 finaltransform= new Vector2(deltax, deltay);
transform.Translate (finaltransform);
}
}
Comment
Answer by getyour411 · Jan 18, 2014 at 03:10 AM
Rename this class to something besides Physics and try again.
Your answer