private void OnEnable() { pp = (PlatformPortal)target; if (!pp.platform) { Transform platform = pp.transform.parent; bool find = true; while (platform.tag != "Platform") { platform = platform.parent; if (!platform) { find = false; break; } } if (find) { pp.platform = platform.GetComponent <PlatformGeneral>(); Debug.Log("Find Platform: " + pp.platform.index); } else /*display error message;*/ } { } }
//basic movement between platforms: teleport public virtual void SwitchPlatform(GameObject player, PlatformPortal pp) { player.GetComponent <CharacterController>().Move(pp.transform.position - player.transform.position); }