protected override int HandleMovement() { int returnVal = base.HandleMovement(); if (returnVal == 0) { collisionCount = 0; return(0); } else { if (collisionCount == 0) { Sound.BumpSound(); } collisionCount += returnVal; //Debug.Log(collisionCount); if (collisionCount > maxCollisions * 3) { NextTarget(); } return(returnVal); } Vector3 newPossition = this.transform.position + new Vector3(MovementSpeed.x * Time.deltaTime, MovementSpeed.y * Time.deltaTime, 0); if (CheckMovement(newPossition)) { this.transform.position = newPossition; collisionCount = 0; } else { collisionCount++; if (collisionCount > maxCollisions) { NextTarget(); } } }