change angle towards direction
I want to deflect/reflect my bulltet, so I used rays to get the incident ray , the normal and made a function that reflects the ray and returns a new vector3. I got the new vector but I don't know how to make the bullet have the same direction of the vector (blue ray). How can I do so? I tried Quaternion.FromToRotation and other functions and they didn't worked. 
Here is the code to understand more what's happening:
 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);
         }
 
 
     }
 
     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);
         Vector2 rf = reflect;
         /**here the reflection and change of angle should occur ! **/
 
    }
 }
Answer by Eno-Khaon · Feb 23, 2016 at 10:48 AM
Well, you have the direction vector of the bullet prior to bouncing off the surface, as well as the calculated new vector after it's deflected.
Being a little lazy and taking a note from this older question, you should be able to generate a Quaternion rotation by doing something like this:
 Quaternion angleAdjustment = Quaternion.FromToRotation(currentDirection, reflectedDirection);
 transform.rotation = angleAdjustment * transform.rotation;
Quaternion multiplication order always throws me off, so I apologize if I got the final line backwards; Non-commutative math is never pleasant to work through.
Anyway, with both of the directions in mind, the vectors can be run through a FromToRotation to calculate how to reach the destination vector from the current vector. Then, that value can be multiplied with the current rotation to rotate to the new orientation.
Edit: I understand if it doesn't work out for you, since you already mentioned you'd given FromToRotation a try, but I'm simply offering my perspective on it in case anything may have been overlooked.
I'm not really sure what you mean. What is "it" that is zero?
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                