- Home /
Find amount of vertical movement of object
I am wanting to find the amount of movement up or down for an object (regardless of movement in other axis) and if its above a set amount, or below a set amount. certain things happen. Unfortunately it does not seem to work as intended. The variable "move_distance" is ALWAYS a positive number, which makes absolutely no sense.
max_fog_height_increase is 0.1
max_fog_height_decrease is 0.1
Vector3 old_position = fog_clone_active_pool[i].transform.position;
if (flow_on_terrain)
{
//this works. effects object position in world
fog_clone_active_pool[i].transform.position += GetTerrainNormal(fog_clone_active_pool[i].transform.position) * flow_speed;
}
if (effected_by_wind)
{
//this works. effects object position in world
fog_clone_active_pool[i].transform.position += wind_master.transform.TransformDirection(Vector3.forward) * wind_velocity;
}
if (fog_clone_active_pool[i].transform.position != old_position)
{
float move_distance = fog_clone_active_pool[i].transform.position.y - old_position.y;
if (move_distance > max_fog_height_increase && fog_clone_active_pool[i].transform.position.y > old_position.y)
{Debug.Log("Clone moved too high");
}
else
{
if (last_move_vector.y < -max_fog_height_decrease)
{
Debug.Log("clone fell too far");
}
}
}
at line 6: Vector3 old_position = fog_clone_active_pool[i].transform.position;
Here old position is always updated with current position. You may use counter or time-stamp to record your previous position and then compare them. or you can also use a temp variable to store previous position.
Your answer
Follow this Question
Related Questions
How to edit one axis of the transform position 1 Answer
Calculate differential Euler angles from two Transform.Forward/Up/Right? 2 Answers
How can I make the nearest astroid move to my preset location? 0 Answers
Crouch Script/ Scaling transform from one side only 1 Answer
How to rotate child object regardless of orientation? 0 Answers