Bool is always true

I’m working on a script that triggers a Drill when the Player enter’s the trigger zone of the Drill gameobject.
When triggered the drill is supposed to come down and go back up.

Here’s the code

using UnityEngine;
using System.Collections;

public class Drill_Small : MonoBehaviour {

	public Transform Initial;
	public Transform Final;
	public bool Trigger = false;
	public bool Down;
	public bool Up;

	// Use this for initialization
	void Start () {
	// Update is called once per frame
	void Update () {
		if(transform.position == Initial.position) {
			Down = true;
			Up = false;
		if(transform.position == Final.position) {
			Up = true;
			Down = false;
		if (Trigger == true) {
			if (Down = true) {
				transform.position = Vector3.MoveTowards (transform.position, Final.position, 5f * Time.deltaTime);
			if (Up = true) {
				transform.position = Vector3.MoveTowards (transform.position, Initial.position, 2.5f * Time.deltaTime);
	void OnTriggerEnter (Collider col){
		if (col.gameObject.tag == "Player") {
			Trigger = true;

Once triggered, The Drill gameobject comes down, But is not going back, When i checked in the inspector the Down boolean is always true, never goes back to false, And i cant set it to false even in the inspector.
I don’t know what’s wrong with the code.
Someone please help me.


if (Down = true)

will set down to true, you need ==

Actually, i can’t understand how if (Down = true) works. It must give an error says the thing you do is not a bool. Correction is if (Down == true)