ASP.NET MVC 5 Удаленная проверка с помощью ViewModel [duplicate]

Проблема возникает, потому что ваш Player перекрывается в начале raycast. Есть несколько способов исправить это:

1.Disable Queries запускаются в коллайдерах.

Перейдите в Edit-> Project Settings-> Physics 2D, затем убедитесь, что Queries Start In Colliders НЕ проверено. После изменения кода ваш код преуспел. Вот скриншот:

2. Другим решением является использование слоев. Ретрансляция, но игнорирование уровня Player. Прежде чем вы это сделаете, сделайте обязательно создайте слой с именем Ground и поместите свой объект GameObject на слой Ground, затем создайте еще один слой с именем Player и поместите ваш плеер в слой Player. Теперь мы можем использовать bitwise для исключения слоя Player из raycast.

Теперь давайте предположим, что номер слоя игрока 9. Код ниже должен исправить вашу проблему.

public int playerLayer = 9;
int layerMask = ~(1 << playerLayer); //Exclude layer 9
RaycastHit2D hit = Physics2D.Raycast(rayOrigin, Vector2.down, 0.1f, layerMask);

Вот и все. Оба из них смогли решить вашу проблему.

Для других людей, читающих ниже, другие способы легко обнаружить, когда Player касается пола без использования Physics2D.Raycast или выполнения всех этих действий выше.

Просто присоедините к Player.

public class Player : MonoBehaviour
{
    public LayerMask groundLayer;
    Collider2D playerCollider;
    bool grounded;

    void Start()
    {
        playerCollider = gameObject.GetComponent();
    }

    public bool IsGrounded()
    {
        grounded = Physics2D.OverlapCircle(playerCollider.transform.position, 1, groundLayer);
        return grounded;
    }
}

Или вы можете использовать IsTouchingLayers.

public bool IsGrounded()
{
    grounded = grounded = playerCollider.IsTouchingLayers(groundLayer.value);
    return grounded;
}

0
задан Sparky 25 April 2016 в 14:40
поделиться

1 ответ

Вы можете использовать свойство Prefix для BindAttribute, чтобы эффективно «разбить» префикс.

public JsonResult Validate([Bind(Prefix="HouseState.Name")]string Name)

, поэтому name="HouseState.Name" становится только Name при привязке

2
ответ дан Stephen Muecke 4 September 2018 в 09:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: