Question by 
               rpthomps · Oct 26, 2017 at 05:49 PM · 
                fixedupdatemoveposition  
              
 
              MovePosition works for keys but not from mouseclick
Hello,
I have a game object that can move via the keyboard, through getaxisraw and also can move by clicking some sprites on the gameboard via the mouse. When I use the keys, the object faces the new direction and moves in that direction. When I use the mouse it faces the new direction but doesn't move. It did before the last update of Unity but now doesn't. Any ideas?
void FixedUpdate () {
     // Store the input axes.
     float h = Input.GetAxisRaw ("Horizontal");
     float v = Input.GetAxisRaw ("Vertical");
     Move (h, v);
     #if UNITY_EDITOR
     if (Input.GetMouseButton(0) || Input.GetMouseButtonDown(0) || Input.GetMouseButtonUp(0)){
         Ray ray = cam.ScreenPointToRay(Input.mousePosition);
         RaycastHit hit = new RaycastHit();
         Debug.DrawRay(ray.origin, ray.direction * 1000, Color.green);
         // Tell me what object is hit
         if (Physics.Raycast(ray, out hit)) {
             if (hit.collider.gameObject.name == "BuyButtonCylinder"){
             }
             if (hit.collider.gameObject.name == "DownButtonCylinder"){
                 Move(0,-1);
             }
             if (hit.collider.gameObject.name == "RightButtonCylinder"){
                 Move(1,0);
             
             }
             if (hit.collider.gameObject.name == "LeftButtonCylinder"){
                 Move(-1,0);
             }
             if (hit.collider.gameObject.name == "UpButtonCylinder"){
                 Move(0,1);
             
             }
         }
     }
     #endif
     foreach (Touch touch in Input.touches) {
         Ray ray = cam.ScreenPointToRay (touch.position);
         RaycastHit hit = new RaycastHit ();
         // Tell me what object is hit
         if (Physics.Raycast (ray, out hit)) {
             if (hit.collider.gameObject.name == "DownButtonCylinder") {
                 Move (0, -1);
             }
             if (hit.collider.gameObject.name == "RightButtonCylinder") {
                 Move (1, 0);
             }
             if (hit.collider.gameObject.name == "LeftButtonCylinder") {
                 Move (-1, 0);
             }
             if (hit.collider.gameObject.name == "UpButtonCylinder") {
                 Move (0, 1);
             }
         }
     }
 }
 public void Move (float h, float v)
 {
     // Move the player around the scene.
     if (m_amIdead || b_pauseMe) {
         h = 0;
         v = 0;
     }
         
     // Set the movement vector based on the axis input.
     movement.Set (h, 0f, v);
     // Normalise the movement vector and make it proportional to the speed per second.
     movement = movement.normalized * speed * Time.deltaTime;
     // Move the player to it's current position plus the movement.
     playerRigidbody.MovePosition (transform.position + movement);
     transform.forward = movement;
     //transform.forward = Vector3.Normalize(new Vector3(h, 0f, v));
 }
               Comment
              
 
               
              Answer by rpthomps · Oct 27, 2017 at 01:31 PM
I solved it by adding
     if (h != 0 || v != 0)
         transform.forward = Vector3.Normalize(new Vector3(h, 0f, v));
Your answer
 
 
              koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                