Я пытаюсь сделать 2-ой платформер, где вы видите игрока со стороны. Я хочу, чтобы он постоянно двигался, и вы должны нажимать в нужное время, чтобы он не упал. Сейчас все работает, но он не сталкивается с землей. Я хочу, чтобы он был таким, будто он бежит за стеной, поэтому я хочу игнорировать определенный слой, который я сделал, и сталкиваться с полями под ним. До сих пор я пробовал кастовать лучи, смотрел несколько уроков и делал столкновения с коробками. Столкновения с коробками работали, но для того, чтобы все платформы считались надежными, мне понадобилось бы 50 коробочных коллайдеров. Вот мой текущий код:
public int playerSpeed = 10;
public int playerJumpPower = 1250;
public float moveX;
public float playerYSize = 2;
public LayerMask mainGround;
public float playerFallSpeed = 5;
void Awake(){
}
// Update is called once per frame
void Update()
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, new Vector2(10, 0));
if(hit.distance < 0.7f){
print("hi");
}
Vector3 characterTargetPosition = new Vector3(transform.position.x + playerSpeed, transform.position.y, transform.position.z);
transform.position = Vector3.Lerp(transform.position, characterTargetPosition, playerSpeed * Time.deltaTime);
if(Input.GetKeyDown("space")){
// float playerTargetPosY = transform.position.y + playerJumpPower;
// Vector3 characterTargetPosition = new Vector3(transform.position.x, playerTargetPosY, transform.position.z);
// transform.position = Vector3.Lerp(transform.position, characterTargetPosition, playerJumpPower * Time.deltaTime);
gameObject.GetComponent<Rigidbody2D>().AddForce(Vector2.up * playerJumpPower);
}
//PlayerMove();
}
У меня есть жесткая Body2D на моем плеере, так что сейчас он просто падает сквозь землю, но прыжок работает. Если есть простой способ сделать это. Как какой-то сценарий, учебник или веб-сайт, я для него открыт. Пожалуйста, помогите.