PlatformObject.deActivate C# (CSharp) Method

deActivate() public method

public deActivate ( int activator = -1 ) : void
activator int
return void
	public void deActivate(int activator = -1) {
		if (activator > -4) {return;}
		if (deactivatesAdjacentPlatformsWhenDeactivating) {
			MapSegment.Message message = new MapSegment.Message();
			message.deActivatePlatform = true;
			parent.sendMessage(message);
		}
		if (deactivatesLight) {
			foreach (MapSegmentSide s in parent.sides) {
				if (s.upperLight != null) s.upperLight.deActivate();
				if (s.middleLight != null) s.middleLight.deActivate();
				if (s.lowerLight != null) s.lowerLight.deActivate();
			}
			parent.floor.light.deActivate();
			parent.ceiling.light.deActivate();
		}
		if (activatesAdjacentPlatformsWhenDeactivating) {
			MapSegment.Message message = new MapSegment.Message();
			message.activatePlatform = true;
			parent.sendMessage(message);
		}
		active = false;

		foreach (ControlPanel cp in GlobalData.map.controlPanels) {
			if (cp.platformSwitch == parent.id || cp.tagSwitch == mapTag) {
				cp.toggle();
			}
		}
	}

Usage Example

示例#1
0
    // public void playerTouch() {
    //  //Debug.Log("platform");
    //  //element.GetComponent<Mesh>().material =
    //  if (door) {
    //      if (!locked) {
    //          activate();
    //      } else {
    //          //?? play locked sound??
    //      }
    //  }
    // }

    // public void activate() {
    //      active = !active;
    //  if (delayedTime >= delay) {
    //      extending = !extending;
    //      extended = !extended;
    //      delayedTime = 0;
    //      hasActivated = true;
    //  }
    // }


    // Update is called once per frame
    void Update()
    {
        // if (platformid == 436 || platformid == 443) {
        //  ;
        // }

        bool transit = true;

        if (platform.active)
        {
            float speed = platform.speed * Time.deltaTime;


            if (delayedTime <= platform.delay)
            {
                delayedTime += Time.deltaTime;
                speed        = 0;
            }

            // if (speed != 0 && platformid == 0) {
            //  ;
            // }

            // Debug.Log("active");
            // Debug.Log(platform.Speed);
            // Debug.Log(platform.extending);

            if (platform.extending)
            {
                if (fromTop)
                {
                    if (gameObject.transform.localPosition.y > min.y)
                    {
                        gameObject.transform.localPosition -= new Vector3(0, speed, 0);
                    }
                    else
                    {
                        gameObject.transform.localPosition = min;
                        transit = false;
                    }
                }
                else
                {
                    if (gameObject.transform.localPosition.y < max.y)
                    {
                        gameObject.transform.localPosition += new Vector3(0, speed, 0);
                    }
                    else
                    {
                        gameObject.transform.localPosition = max;
                        transit = false;
                    }
                }
            }
            else
            {
                if (platform.contractsSlower)
                {
                    speed = speed * 0.66f;
                }
                if (fromTop)
                {
                    if (gameObject.transform.localPosition.y < max.y)
                    {
                        gameObject.transform.localPosition += new Vector3(0, speed, 0);
                    }
                    else
                    {
                        gameObject.transform.localPosition = max;
                        transit = false;
                    }
                }
                else
                {
                    if (gameObject.transform.localPosition.y > min.y)
                    {
                        gameObject.transform.localPosition -= new Vector3(0, speed, 0);
                    }
                    else
                    {
                        gameObject.transform.localPosition = min;
                        transit = false;
                    }
                }
            }
            // Debug.Log(transit);
            // Debug.Log(transit);

            if (!transit)
            {
                inTransit = false;
                // platform.active = false;
                // platform.extended = !platform.extended;
                // platform.extending = !platform.extending;
                platform.deActivate();
            }
        }

        if (fromTop)
        {
            platform.upperBottom.setLight();
            platform.upperTop.setLight();
            foreach (MapSegmentSide side in platform.upperSides)
            {
                side.setLight();
            }
        }
        else
        {
            platform.lowerBottom.setLight();
            platform.lowerTop.setLight();
            foreach (MapSegmentSide side in platform.lowerSides)
            {
                side.setLight();
            }
        }
    }