- Home /
Pickup fails using modified Lerpz script
So I'm borrowing bits of the Lerpz tutorial script (because I'm trying to use it to learn how to build something where everything isn't already prefabricated for me) but I've been struggling with the simple Pickup script for hours.
I get no errors, but the health object does NOT pickup nor does it get destroyed.
My Main camera has the character controller attatched but trying to add a collider just replaced it (then my character wouldn't move) so I created a 'collider' child in the Hierarchy and added a capsule collider to that and ticked 'Is Trigger'.
This is my script - what am I missing?
enum PickupType { Health = 0,}
var pickupType = PickupType.Health;
var amount = 1; var sound : AudioClip; var soundVolume : float = 2.0;
private var used = false; private var mover : DroppableMover;
function Start () {
mover = GetComponent(DroppableMover);
}
function ApplyPickup (playerStatus : FirstPersonStatus) {
switch (pickupType)
{
case PickupType.Health:
playerStatus.AddHealth(amount);
break;
Destroy(gameObject);
}
}
I've added a screenshot: http://deaddancers.deviantart.com/art/screenshot-temp-164017359
Answer by qJake · May 14, 2010 at 09:30 PM
You're missing a trigger event. I haven't done the FPS Tutorial (frankly I don't think it's that great), so I can't just give you code (I have no idea what a FirstPersonStatus is), but you're definitely missing some sort of trigger event here.
// C#
void OnTriggerEnter(Collider other)
{
// Something triggered the trigger here
// Use other.gameObject to get the game object that we collided with.
}
This is the problem with taking only bits and pieces from a tutorial... you're bound to miss something important/crucial. I'm betting there's another script that calls "ApplyPickup" somewhere that you're missing that has the Trigger event inside it.
Answer by karl_ · Jun 12, 2010 at 03:40 AM
Attach this to your player, not each acquirable item. As long as the collider on the acquirable is set to Trigger you shouldn't need to mark your character controller as a Trigger.
function OnTriggerEnter (hit : Collider) { Destroy(hit.gameObject); // Do whatever else here
}
Also, just doing a quick search here came up with this, which is also a great answer: http://answers.unity3d.com/questions/3769/pickup-doesnt-pick-up
Your answer
Follow this Question
Related Questions
Timer script Update with Pickup 0 Answers
Understanding the Pickup script in Lerpz tutorial 2 Answers
pick up/throw object 1 Answer
3Dplatformer tutorial GUI script - adding a timer GUI 0 Answers
Unity Platformer Problems 1 Answer