Help with my Tetris Game

Again, i am new to unity and also in programming
i now got a problem is how can i make sure the block are stop only on top of the other block or only on the base,
i had try ontriggerstay but it let me stop once the corner touches,
now i try to use ontriggerenter but sometimes it stop half way,
any good way for this or how should i change my code so i can get the result i want
thnks for helping

void OnTriggerEnter(Collider other) {
		if (other.tag == "FixBlock" || other.tag == "Base"){
			if(other.transform.position.x == this.transform.position.x){
				touch = true;
				this.tag = "FixBlock";
			}
		}
	}

I can think of two potential solutions to your problem.

Firstly, try OnCollisionEnter rather than TriggerEnter or TriggerStay. This will mean the objects do not overlap.

Secondly, if blocks are a set size, you can simple store how far up that tower should go, and set the Y coordinate to that.