C# Script is affecting multiple GameObjects but I would like it to only affect one of them...

As a part of my game, there is a mechanic for falling platforms. When I first added a falling platform, I thought it would work, but I placed another one later on in the level and it turned out that when I triggered one of the falling platforms, it affected the other one.

Here are my scripts:

Trigger Script -

using UnityEngine;
using System.Collections;

public class FallingScriptTrigger : MonoBehaviour {

	void OnTriggerEnter (Collider other)
	{
		if(other.tag == "Player")
		{
			fallingScript.PlayerIsOnTop = true;
		}
	}

	void OnTriggerExit (Collider other)
	{
		if(other.tag == "Player")
		{
			fallingScript.PlayerIsOnTop = false;
		}
	}
}

Controller Script -

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Rigidbody))]
[AddComponentMenu("Platform/Falling Platform Script")]
public class fallingScript : MonoBehaviour {

	//Sound Prefabs
	public GameObject IndicatorSound;
	public GameObject fallingSound;

	//Indication GameObjects
	public GameObject indicator1;
	public GameObject indicator2;
	public GameObject indicator3;

	//Variables
	public float intervalTime;
	public static bool PlayerIsOnTop = false;
	bool OneTime = true;
	Vector3 startPos;
	bool hasStartedFalling = false;

	// Use this for initialization
	void Start () {
		IndSetAct(false, false, false);
		rigidbody.constraints = RigidbodyConstraints.FreezeAll;
		startPos = transform.position;
	}

	void Update ()
	{
		if(PlayerIsOnTop == true)
		{
			if(OneTime == true)
			{
				StartCoroutine("seq");
				OneTime = false;
			}
		}
		else
		{
			if(hasStartedFalling == false)
			{
				if(transform.position == startPos)
					{
						OneTime = true;
						StartCoroutine("sseq");
					}
			}
		}
	}

	void IndSetAct (bool setActiveBool1, bool setActiveBool2, bool setActiveBool3)
	{
		indicator1.SetActive(setActiveBool1);
		indicator2.SetActive(setActiveBool2);
		indicator3.SetActive(setActiveBool3);
	}

	IEnumerator seq ()
	{
		IndSetAct(true, false, false);
		Instantiate(IndicatorSound);
		yield return new WaitForSeconds(intervalTime);
		IndSetAct(true, true, false);
		Instantiate(IndicatorSound);
		yield return new WaitForSeconds(intervalTime);
		IndSetAct(true, true, true);
		Instantiate(IndicatorSound);
		yield return new WaitForSeconds(intervalTime);
		IndSetAct(false, false, false);
		Instantiate(fallingSound);
		rigidbody.constraints = RigidbodyConstraints.None;
		rigidbody.constraints = RigidbodyConstraints.FreezeRotation;
		rigidbody.constraints = RigidbodyConstraints.FreezePositionX;
		rigidbody.constraints = RigidbodyConstraints.FreezePositionZ;
		hasStartedFalling = true;
		yield return null;
	}
	IEnumerator sseq ()
	{
		StopCoroutine("sseq");
		rigidbody.constraints = RigidbodyConstraints.FreezeAll;
		IndSetAct(false, false, false);
		transform.position = startPos;
		yield return null;
	}
}

Please help asap… I can’t really progress the game’s development without fixing this bug. Thanks…

public static bool PlayerIsOnTop = false;

You should look up what static means. It’s the problem.