我正在开发一款游戏,而我刚刚开始。我在地图中添加了一个 png,并且一直在我想要无法通过的区域周围添加对撞机(它是一个 2D 平台游戏)。我已经设计了一个敌人,并在它四处移动时添加了一个 2DRigidBody 组件,并开始使用 2DBoxColliders 作为关卡的碰撞器,以及我编写的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Sexapus : MonoBehaviour {
public static int Velocity = 42;
public Rigidbody2D rb;
public Vector2 dir;
public Animator anim;
void Start () {
rb = GetComponent<Rigidbody2D>();
dir = new Vector2(1, 0);
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update () {
rb.velocity = dir * Velocity;
anim.SetFloat ("Direction", dir.x);
}
void OnCollisionEnter2D (Collision2D col) {
dir = dir * -1;
}
//CHECK TASKS
}
意味着敌人会撞到墙的一侧,然后旋转并开始向另一条路走。我意识到我的地图的大小使用多个 2DBoxColliders(当我说多个时,我的意思是我可能不得不使用超过一百个)是一种非常糟糕的方法。我现在也开始在地图上使用 2DpolygonCollider,但现在敌人不会与墙壁的侧面发生碰撞并转身,它只是保持朝向同一个方向但不会移动。有谁知道为什么?