From f1e07f21286206fd19b7daccac33bd895749a3b7 Mon Sep 17 00:00:00 2001 From: Jeff Date: Sun, 30 Jan 2022 13:55:28 +1100 Subject: [PATCH] Platform now moves player --- Assets/Scenes/Level 2.unity | 4 ++-- Assets/Scripts/PlatformMover.cs | 28 ++++++++++++++++++++++------ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/Assets/Scenes/Level 2.unity b/Assets/Scenes/Level 2.unity index 6de99e9..87387aa 100644 --- a/Assets/Scenes/Level 2.unity +++ b/Assets/Scenes/Level 2.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a682cca83f7ccc5ce655eccc527b7dfc5712f70e820adde94bb3da99407916dc -size 442128 +oid sha256:eb66543789d5acb4f3c8de12d0afaa162d47a93c1b6e058fe981c22a4f214228 +size 441461 diff --git a/Assets/Scripts/PlatformMover.cs b/Assets/Scripts/PlatformMover.cs index a088f83..376085b 100644 --- a/Assets/Scripts/PlatformMover.cs +++ b/Assets/Scripts/PlatformMover.cs @@ -8,16 +8,32 @@ public class PlatformMover : MonoBehaviour [SerializeField] private Transform m_EndPos; [SerializeField] private float m_Duration = 2f; - // Start is called before the first frame update - void Start() + private Transform m_OldParent; + + private void Update() { - + transform.position = Vector2.Lerp(m_StartPos.position, m_EndPos.position, (Mathf.Sin(Time.time * m_Duration) + 1.0f) / 2.0f); } - // Update is called once per frame - void Update() + private void OnCollisionEnter2D(Collision2D collision) { - transform.position = Vector2.Lerp(m_StartPos.position, m_EndPos.position, (Mathf.Sin(Time.time * m_Duration) + 1.0f) / 2.0f); + var playerController = collision.gameObject.GetComponent(); + if(playerController) + { + m_OldParent = playerController.transform.parent; + playerController.transform.parent = transform; + } + } + + private void OnCollisionExit2D(Collision2D collision) + { + var playerController = collision.gameObject.GetComponent(); + if(playerController) + { + playerController.transform.parent = m_OldParent; + m_OldParent = null; + } + } #if UNITY_EDITOR