CharacterController.SimpleMove() doesn't work

Hello guys,

I am working on “click to move” script to my game and everything in script works except line of code with SimpleMove(). Unity writes no error, it just does not move, even it rotates correctly. And yes, CharacterController is attached to Player gameobject and is assigned in the inspector.
Here is the script:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(CharacterController))]
public class CharacterMovement : MonoBehaviour {

    private Vector3 _targetPosition;    

    public float speed;
    public float rotationSpeed;
    public Camera mainCamera;
    public CharacterController controller;

	void Start () {
        
        _targetPosition = transform.position;
        speed = 2f;
        rotationSpeed = 4f;
	}
	
	void Update () {

        if(Input.GetKeyDown(KeyCode.Mouse1)) {

            Ray _ray;
            RaycastHit _hit;
  
            _ray = mainCamera.ScreenPointToRay(Input.mousePosition);

            if(Physics.Raycast(_ray, out _hit, 20) && _hit.collider.tag != "Player") {

                _targetPosition = _hit.point;
            }
        }
        
        if(Vector3.Distance(transform.position, _targetPosition) < 0.1f) _targetPosition = transform.position;      
        
        Move();
	}

    private void Move() {

        if(transform.position != _targetPosition) {
    
            Quaternion lookPosition = Quaternion.LookRotation(_targetPosition - transform.position);
            lookPosition.x = 0;
            lookPosition.z = 0;
            transform.rotation = Quaternion.Slerp(transform.rotation, lookPosition, rotationSpeed * Time.deltaTime);

            controller.SimpleMove(transform.forward * speed);
        }
    }
}

Ok, I used a google and found very similar article:

The problem was, that my cube had a child object with collider touching the cube. When I checked child’s object collider as Trigger, everything works correctly now.
Thank you all for your responses.

Sorry to dig up a very old post but this is the first one that comes when googling this issue. I just experienced troubles with SimpleMove myself and it took me all afternoon to figure out the problem, so I want to post the solution here for reference.

As it turned out, I was “breaking” my Character Controller by calling SimpleMove(somthing / 0f) at the very first frame. Even though I was calling it with reasonable values afterwards, it was completely unresponsive.

Since SimpleMove requires a speed, it’s frequence to call it with a fraction of dist/time so be sure that you NEVER call it with a time of 0.