По сути, я создаю 2D-игру, и персонаж должен захватывать объекты, поэтому я выполнил оператор if/else, и условие if(grab) работает, а условие else/else if(drop) — нет , я знаю, что я пришел из else if bc if a do if(!isGradding) ... а затем if(isGradding) ... персонаж захватывает объект и сразу же отбрасывает его, я попробовал оператор переключения, но ошибка то же самое, и если я сделаю 2 оператора переключения, он схватит и сразу же отбросит его.
Вот мой код, надеюсь, у кого-нибудь есть решение:
public Transform grabDetect;
public Transform Holder;
public float rayDist;
private bool isGrabbing=false;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
RaycastHit2D grabCheck = Physics2D.Raycast(grabDetect.position, Vector2.right * transform.localScale, rayDist);
if(grabCheck.collider != null && grabCheck.collider.tag == "objets")
{
if(Input.GetKeyDown("g"))
{
if(!isGrabbing)
{
grabCheck.collider.gameObject.transform.parent= Holder;
grabCheck.collider.gameObject.transform.position= Holder.position;
grabCheck.collider.gameObject.GetComponent().isKinematic = true;
isGrabbing = true;
if(isGrabbing == true)
{
Debug.Log("isGrabbing");
}
}
else
{
grabCheck.collider.gameObject.transform.parent = null;
grabCheck.collider.gameObject.transform.position= grabDetect.position;
grabCheck.collider.gameObject.GetComponent().isKinematic = false;
isGrabbing = false;
if(isGrabbing == false)
{
Debug.Log("isn't grabbing");
}
}
}
}
}
I've tried a switch statement, a while loop (that obviously crashed unity), multiple functions for grab and Drop, but the only thing that slightly worked was doing two if statements thaht were activated at the same time, I tried mapping two different keys for grabbing and dropping but it didn't worked as well, I don't think the prolem comes from my code but i don't know
Подробнее здесь: https://stackoverflow.com/questions/782 ... f-else-bug
Игра Unity 2D, если/иначе ошибка ⇐ C#
Место общения программистов C#
1713273801
Anonymous
По сути, я создаю 2D-игру, и персонаж должен захватывать объекты, поэтому я выполнил оператор if/else, и условие if(grab) работает, а условие else/else if(drop) — нет , я знаю, что я пришел из else if bc if a do if(!isGradding) ... а затем if(isGradding) ... персонаж захватывает объект и сразу же отбрасывает его, я попробовал оператор переключения, но ошибка то же самое, и если я сделаю 2 оператора переключения, он схватит и сразу же отбросит его.
Вот мой код, надеюсь, у кого-нибудь есть решение:
public Transform grabDetect;
public Transform Holder;
public float rayDist;
private bool isGrabbing=false;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
RaycastHit2D grabCheck = Physics2D.Raycast(grabDetect.position, Vector2.right * transform.localScale, rayDist);
if(grabCheck.collider != null && grabCheck.collider.tag == "objets")
{
if(Input.GetKeyDown("g"))
{
if(!isGrabbing)
{
grabCheck.collider.gameObject.transform.parent= Holder;
grabCheck.collider.gameObject.transform.position= Holder.position;
grabCheck.collider.gameObject.GetComponent().isKinematic = true;
isGrabbing = true;
if(isGrabbing == true)
{
Debug.Log("isGrabbing");
}
}
else
{
grabCheck.collider.gameObject.transform.parent = null;
grabCheck.collider.gameObject.transform.position= grabDetect.position;
grabCheck.collider.gameObject.GetComponent().isKinematic = false;
isGrabbing = false;
if(isGrabbing == false)
{
Debug.Log("isn't grabbing");
}
}
}
}
}
I've tried a switch statement, a while loop (that obviously crashed unity), multiple functions for grab and Drop, but the only thing that slightly worked was doing two if statements thaht were activated at the same time, I tried mapping two different keys for grabbing and dropping but it didn't worked as well, I don't think the prolem comes from my code but i don't know
Подробнее здесь: [url]https://stackoverflow.com/questions/78285115/unity-2d-game-if-else-bug[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия