Я новичок в Unity.Как следует из названия, у меня возникают проблемы с получением коллизий прямо в моей игре.Я использую пользовательский физический скрипт из Unity: https://unity3d.com/learn/tutorials/topics/2d-game-creation/scripting-gravity?playlist=17093. В моей игре я испытываю трудности с отключением столкновений.
Например, когда я использую
Physics2D.IgnoreLayerCollision (8, 9);
Это ничего не меняет, и эти два символа все еще сталкиваются.Кроме того, по некоторым причинам триггеры ведут себя странно и все еще подвержены столкновениям.Подход к персонажу с триггерами заставит его всплыть.Я застрял на этом в течение длительного времени, и я очень признателен за помощь.
Стоит отметить, что я использую собственную физику и использую коробочный коллайдер 2d для определения дальности атаки и т. Д. Вотнекоторый код этого:
Collider2D attackbox = Physics2D.OverlapBox (attackPos.position, new Vector2 (attackRangeX, attackRangeY), 0, whatIsPlayer);
if (attackbox != null && !isDead && characterController.isDead == false) {
targetVelocity = Vector2.zero;
animator.SetTrigger ("isPunching");
timeBtwAtk = startTimeBtwAtk;
}
, и у меня есть отдельные триггеры удара в анимации, чтобы определить, когда на самом деле наносится удар по персонажу:
public void SetColliderIndex(int spriteNum)
{
colliders[currentColliderIndex].enabled = false;
currentColliderIndex = spriteNum;
colliders[currentColliderIndex].enabled = true;
}
public void ClearColliderIndex()
{
colliders[currentColliderIndex].enabled = false;
}
void OnTriggerEnter2D(Collider2D col)
{
if (col.tag == "Player")
{
col.GetComponent<CharacterController2D> ().TakeDamage (enemyDamage);
col.GetComponent<CharacterController2D> ().canWait = false;
col.GetComponent<CharacterController2D> ().canControl = false;
}
}
Когда я использую Physics2D.IgnoreLayerCollision (8, 9);
, я хочуоба указанных слоя не взаимодействуют вообще.Я не хочу никаких странных сдвигов или плавания, когда они проходят друг через друга.Также, когда я двигаю своего игрока против врага, я не хочу, чтобы он смог оттолкнуть его назад.Я хочу, чтобы это было так, как будто он врезался в стену.