Get Direction of a vector
I have a 2D object which is a bullet that I want to reflect when it hits a normal. To reflect the direction of the ray I used Vector3.reflect. The weird thing is I logged both vectors the original and the reflected one and they have the same values but different directions as drawn in the debug. How can I get the direction of the reflect vector rather than the same of the original direction.
here is the code along with a picture:
using UnityEngine;
using System.Collections;
public class BulletBehavior2D : MonoBehaviour {
public bool isEnabled;
public float speed;
public bool bounceOff;
public float rayLength;
private Ray2D ray;
private RaycastHit2D hit;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
ray = new Ray2D (new Vector2 (transform.position.x, transform.position.y), new Vector2 (transform.right.x, transform.right.y));
RaycastHit2D hit;
Debug.DrawRay (ray.origin, ray.direction * rayLength);
hit = Physics2D.Raycast (ray.origin, ray.direction, rayLength);
if (isEnabled) {
transform.position += transform.right * Time.deltaTime * speed;
}
if (hit != null) {
Debug.DrawRay (hit.point, hit.normal * rayLength,Color.red);
Vector3 reflect = BulletBehavior2D.Reflect(transform.right,hit.normal);
Debug.DrawRay (hit.point, reflect * rayLength ,Color.blue);
Debug.DrawRay (hit.point, transform.right * rayLength ,Color.blue);
}
}
public static Vector3 Reflect(Vector3 vector, Vector3 normal)
{
return 2.0f * (normal * -Vector3.Dot(vector, normal)) + vector;
}
void OnTriggerEnter2D(Collider2D coll) {
Vector3 reflect = BulletBehavior2D.Reflect (transform.right, hit.normal);
}
}
Your answer

Follow this Question
Related Questions
Determining if my target is standing upright 4 Answers
Get angle between facing direction and a point 0 Answers
Why is Vector2.Angle() returning 90 regardless of input for me? 1 Answer
How can I find direction with known 2 projection angles on xz and yz planes? 2 Answers
Attempting to apply force to object, paralell to mouse drag. 2 Answers