Синтаксис:
Используется csharp
public class box : MonoBehaviour
{
public GameObject player;
private BoxCollider2D b;
private void Start()
{
b = GetComponent<BoxCollider2D>();
}
private void FixedUpdate()
{
if (Input.GetAxis("Vertical") < 0 && Input.GetAxis("Jump") > 0) b.enabled = false;
else Check();
}
private void Check()
{
if (player.transform.position.y < transform.position.y) b.enabled = false;
else if (player.transform.position.y > transform.position.y) b.enabled = true;
}
}
{
public GameObject player;
private BoxCollider2D b;
private void Start()
{
b = GetComponent<BoxCollider2D>();
}
private void FixedUpdate()
{
if (Input.GetAxis("Vertical") < 0 && Input.GetAxis("Jump") > 0) b.enabled = false;
else Check();
}
private void Check()
{
if (player.transform.position.y < transform.position.y) b.enabled = false;
else if (player.transform.position.y > transform.position.y) b.enabled = true;
}
}
Следовательно, чтобы туда смогли запрыгнуть и мобы, надо сделать что бы их коллайдер исчезал когда они запрыгивали на нее с низу, тогда я сделал все примерно так:
Синтаксис:
Используется csharp
private void Down()
{
if (Input.GetAxis("Vertical") < 0) bc.enabled = false; //я в курсе что это строка так себе, я просто не придумал
// как они будут на нее нормально
//запрыгивать, а про вопрос спуска я и не думал еще
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Finish") bc.enabled = false;//финиш это тег платформы
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.gameObject.tag == "Finish") bc.enabled = true; //я раньше вместо этого изменял IsTrigger но это приводит к багам
}
{
if (Input.GetAxis("Vertical") < 0) bc.enabled = false; //я в курсе что это строка так себе, я просто не придумал
// как они будут на нее нормально
//запрыгивать, а про вопрос спуска я и не думал еще
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.tag == "Finish") bc.enabled = false;//финиш это тег платформы
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.gameObject.tag == "Finish") bc.enabled = true; //я раньше вместо этого изменял IsTrigger но это приводит к багам
}
Но проблема в том, что чтобы это работало надо ставить в Rigigbody collision detection равным continuous, а это для устройства напряжно, тем более если так поставить на 20 с лишним мобов. И вот собственно все...