Quantcast
Viewing latest article 18
Browse Latest Browse All 49

2D Player can not detect collectible / power up Game Object [Version 2019.5f.01]

I am trying to get a player to pick up an object in a 2D environment. The player can move onto the object, but the object is not registered as being picked up. The game runs without errors. The pickup script looks like this: using System.Collections; using System.Collections.Generic; using UnityEngine; public class PickUp : MonoBehaviour { public GameObject pickupEffect; void onTriggerEnter2D(Collider2D other) { if (other.CompareTag("Player")) { PickUpAction(other); } } void PickUpAction(Collider2D other) { Debug.Log("Picked up powerup"); //Instantiate(pickupEffect, transform.position, transform.rotation); (not yet implemented) other.transform.localScale *= 2; Destroy(gameObject); } } I checked the coin objects in the Unity Playground to see if there was anything I missed. It looks like there isn't. The object in my game has a Circle2D collider that fits the sprite and has On Trigger checked. The player has a Box2D collider that fits it and is tagged as "Player" in the drop-down menu. What am I missing? For reference, this is the Playground collectable script: using UnityEngine; using System.Collections; [AddComponentMenu("Playground/Attributes/Collectable")] public class CollectableAttribute : MonoBehaviour { public int pointsWorth = 1; private UIScript userInterface; private void Start() { // Find the UI in the scene and store a reference for later use userInterface = GameObject.FindObjectOfType(); } //This will create a dialog window asking for which dialog to add private void Reset() { Utils.Collider2DDialogWindow(this.gameObject, true); } // This function gets called everytime this object collides with another private void OnTriggerEnter2D(Collider2D otherCollider) { string playerTag = otherCollider.gameObject.tag; // is the other object a player? if(playerTag == "Player" || playerTag == "Player2") { if(userInterface != null) { // add one point int playerId = (playerTag == "Player") ? 0 : 1; userInterface.AddPoints(playerId, pointsWorth); } // then destroy this object Destroy(gameObject); } } } Thank you for your help!

Viewing latest article 18
Browse Latest Browse All 49

Trending Articles