- Home /
Question by
$$anonymous$$ · Dec 13, 2014 at 10:56 AM ·
2dphysicslift
Lifting box 2D C#
Hello guys, I have a big problem with my C# script, which i use for lifting a box up and down (after that, i want to use this script for all liftable objects). I have 4 problems.
1) If I collide with box, the collision stay even if player is far away (I know, is’t because I have OnTriggerStay2D, but if i use OnTriggerEnter 2D, nothing was happened)
2) If i lift the box up and after that i want to lift the box on another object, the object will simply make way on left or right and the box will stop on the floor.
3) The script lift the box only if the box gravity is off, because if i turned it, then the box slowly fall down
4) When i go with the box and then stoped, the box move farther away (if the box is lifted up)
Thanks for your answers. Yours sincerely GunSpawn. P.S.: The script is here
using UnityEngine;
using System.Collections;
public class MoveWithItems : MonoBehaviour
{
public bool isHolding = false;
public bool isItem = false;
public GameObject box;
public GameObject player;
private int numClick = 0;
void Start ()
{
}
void Update ()
{
if(Input.GetKeyDown(KeyCode.E))
{
isHolding = true;
if(isHolding == true && isItem == true)
{
box.transform.position = new Vector3(box.transform.position.x, box.transform.position.y + 3);
numClick += 1;
}
if(numClick == 2)
{
box.transform.position = new Vector3(box.transform.position.x, box.transform.position.y – 6);
numClick = 0;
}
}
}
void OnTriggerStay2D (Collider2D col)
{
if (col.gameObject.CompareTag(“Holded items”))
{
isItem = true;
if(isHolding == true)
{
col.transform.parent = player.transform;
}
if(numClick == 0)
{
col.transform.parent = null;
isHolding = false;
}
}
}
}
Comment
Your answer
Follow this Question
Related Questions
Continuously moving rigidbody 2 Answers
2d grounded check problem? 3 Answers
Question about Physics2D.Linecast 1 Answer
How to preserve momentum with DistanceJoint2D 1 Answer
The name 'Joystick' does not denote a valid type ('not found') 2 Answers