/// <summary> /// Check cursor collision /// </summary> /// <param name="ray">ray cast</param> /// <returns>Cursor hit</returns> public CursorHit CheckCursorCollision(ref Ray ray) { RayCastResult3D result; this.Owner.Scene.PhysicsManager.RayCast3D(ray, out result); CursorHit cursorHit = new CursorHit(); if (result.HitBody != null) { cursorHit.Hit = true; cursorHit.Position = result.HitData.Location - ray.Direction * this.SurfaceOffset; cursorHit.Target = result.HitData.Location + result.HitData.Normal; } return cursorHit; }
/// <summary> /// Check cursor collision /// </summary> /// <param name="ray">ray cast</param> /// <param name="rayDistance">The ray distance to test</param> /// <returns>Cursor hit</returns> public CursorHit CheckCursorCollision(ref Ray ray, float rayDistance) { HitResult3D result = this.Owner.Scene.PhysicsManager.Simulation3D.RayCast(ref ray, rayDistance); CursorHit cursorHit = new CursorHit(); if (result.Succeeded) { cursorHit.Hit = true; cursorHit.Position = result.Point - (ray.Direction * this.SurfaceOffset); cursorHit.Target = result.Point + result.Normal; } return(cursorHit); }
// Use this for initialization void Start() { cam = this.GetComponent <Camera>(); cursorHit = this.GetComponent <CursorHit>(); defaultTargetPos = this.gameObject.transform.position; }