Bug? or nuance with trigger detection?
I have a very simple problem...
I'm fooling around with a third person shooter, and decided it was time to add a "gravity launcher" to play with...
I have a game object "GravityLauncher" with a capsule collider set as a trigger. The gravity launcher is static and does not have a rigid body attached; but everything that should ever get "gravity launched" will have a rigid body attached.
The gravity launcher script is dead simple right now...
using UnityEngine;
using System.Collections;
public class GravityLauncher : MonoBehaviour
{
public float m_launcherForce;
void OnTriggerStay(Collider other)
{
Debug.Log("hello " + other.name);
if (other.attachedRigidbody != null)
{
other.attachedRigidbody.AddForce(transform.up * m_launcherForce);
}
}
}
My first test of the launcher (dropping a box on it) worked fine; "hello cube" is printed, and the box is "gravity launched" into the air.
Unfortunately, my player does not trip any trigger detection (I also tried OnTriggerEnter()). My player's top game object (called player), has a sphere collider, and a ridigbody component.
Answer by FortisVenaliter · May 19, 2016 at 07:10 PM
It may be your animator. It says that the root motion is controlled by script, which could override any motion provided by the rigidbody.
Interesting theory; to test it, I wrote this script:
using UnityEngine;
using System.Collections;
public class HoverTest2 : $$anonymous$$onoBehaviour
{
public Collider other;
public float m_hoverForce;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
other.attachedRigidbody.AddForce(transform.up * m_hoverForce);
}
}
and attached it to an empty game object; set "other" to the player's sphere collider and it worked as expected. The force is applied, and enough force causes the character to float or fly away.
There is also the fact that the debug statement in my trigger script never fires for the player.
Your answer
Follow this Question
Related Questions
Find Objects in Trigger and Effect Player 1 Answer
I need my timer to only start after it hits a trigger. Please help! 0 Answers
How do I detect a collision between two objects using Bolt? 1 Answer
Can't trigger animation on Collider2D 0 Answers
Pipe Game ... I have to trace water from source to destination 2 Answers