Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22

Не работает код

03.11.2022, 19:58. Показов 2560. Ответов 36

Студворк — интернет-сервис помощи студентам
Всем, здрасьте!
Подскажите, пожалуйста, шел по видеоуроку для изучающих Unity 3D теперь сам дописываю код. У меня на сцене объекты клонируются и уходят за сцены с удалением, а при столкновении останавливается игра. Весь код работает. Возможно ли переделать данный код, где объект при столкновении удалился, но без остановки игры?

1) На объекте есть код:


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class MoveLeft : MonoBehaviour
{
    private float speed = 20;
    private PlayerController playerControllerScript;
        void Start()
    {
        playerControllerScript = GameObject.Find("Player").GetComponent < PlayerController>();
    }
 
        void Update()
    {
        if(playerControllerScript.gameOver == false)
        {
            transform.Translate(Vector3.left * Time.deltaTime * speed);
        }
        if(transform.position.x < - 3 && gameObject.CompareTag("obstacles"))
        {
            Destroy(gameObject);
        }
    }
}


2) Второй код, добавлен через пустой объект:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class SpawnManager: MonoBehaviour
{
    public GameObject obstacle;
    private Vector3 spawnPos = new Vector3(20, 0, 0);
    private float startDelay = 2;
    private float repeatInterval = 2;
    private PlayerController playerControllerScript;
    
    void Start()
    {
        playerControllerScript = GameObject.Find("Player").GetComponent<PlayerController>();
        InvokeRepeating("SpawnObstacle", startDelay, repeatInterval); 
       
    }
 
 
    //void Update()
    // {
 
    // }
 
    void SpawnObstacle()
   // {
    //if(playerControllerScript.gameOver == false)
    {
    Instantiate(obstacle, spawnPos, obstacle.transform.rotation);
   
  
    }
 
    //}
 
    
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2022, 19:58
Ответы с готовыми решениями:

По отдельности код работает, а в функции код не работает
Приветствую! Есть код, который необходимо оформить в функцию. Вне функции список создаётся корректно - дублирует изначальный список, но при...

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт ошибку. ...

Проверьте код, почему-то не работает (код для бесконечного фона)
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Scrolling : MonoBehaviour { ...

36
1149 / 312 / 161
Регистрация: 30.07.2022
Сообщений: 1,792
Записей в блоге: 4
28.07.2023, 11:24
Студворк — интернет-сервис помощи студентам
Antony86, я последнюю скобку и переставил. посмотрите повнимательнее.
0
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
28.07.2023, 20:32  [ТС]
devillived, сорян а вижу
0
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
31.07.2023, 01:22  [ТС]
Добрый день!
Подскажите, пожалуйста , в unity 2D есть возможность без кода создать стену или пол при столкновении которая будет не двигаться? Спасибо!
0
 Аватар для 1max1
3364 / 1776 / 1029
Регистрация: 26.10.2018
Сообщений: 5,204
31.07.2023, 01:26
Antony86, обычный спрайт + коллайдер.
1
1149 / 312 / 161
Регистрация: 30.07.2022
Сообщений: 1,792
Записей в блоге: 4
31.07.2023, 01:54
Antony86, если есть Rigidbody на стене, то заменить значение Динамический на Статичный в Body Type
0
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
31.07.2023, 13:49  [ТС]
1max1, devillived, у меня игрок движется в 4 стороны и мне пришлось выбрать Kinematic, когда я на стену ставлю статик или заморозку по Y игрок просто проходит сквозь объект (On triger тоже выключал у игрока). Может проще тогда через код...
0
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
16.08.2023, 15:03  [ТС]
Всем, добрый день!
Прохожу видеоурок по заданию создается скрипт, чтобы объект можно двигать с помощью клика мыши. Создаю код у себя но объекты не двигаются. Если кто-то что-то знает напишите, спасибо!
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class MoveMouse : MonoBehaviour
{
    private Vector2 _dragOffset;
    private void OnMouseDown()
    {
        _dragOffset = this.transform.position;
    }
 
    private void OnMouseDrag()
    {
        this.transform.position = GetMousePosition() + _dragOffset;
    }
 
    private Vector2 GetMousePosition()
    {
        var _mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        return _mousePosition;
    }
}
0
1149 / 312 / 161
Регистрация: 30.07.2022
Сообщений: 1,792
Записей в блоге: 4
16.08.2023, 15:41
Antony86, OnMouseDown и OnMouseDrag работают с тем объектом на котором скрипт.
если вы кликните по персонажу, то все заработает.
проверяйте свой код например так
повесьте этот скрипт на персонажа
C#
1
2
3
4
5
6
7
8
9
using UnityEngine;
 
public class MoveMouse : MonoBehaviour
{
    private void OnMouseDown()
    {
        print(transform.gameObject.name);// кликнете по полу, затем по персонажу и посмотрите, чьё имя выводит консоль
    }
}
Добавлено через 1 минуту
используйте для этого NanMesh
1
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
16.08.2023, 17:10  [ТС]
ieretsumi, код повесил на игрока, выдается ошибка и клик мыши не работает:
NullReferenceException: Object reference not set to an instance of an object
UnityEditor.Graphs.Edge.WakeUp () (at <b82d8d0a349d4d70807c2fc5746a710f>:0)
C#
1
2
3
4
5
 private void OnMouseDown()
    {
        _dragOffset = this.transform.position;
        print(transform.gameObject.name);// кликнете по полу, затем по персонажу и посмотрите, чьё имя выводит консоль
    }
0
1149 / 312 / 161
Регистрация: 30.07.2022
Сообщений: 1,792
Записей в блоге: 4
16.08.2023, 17:17
Antony86, а коллайдер на объекте есть?
1
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
16.08.2023, 22:50  [ТС]
ieretsumi, коллайдер есть, но у меня Kinematic стоит может из-за этого
0
1149 / 312 / 161
Регистрация: 30.07.2022
Сообщений: 1,792
Записей в блоге: 4
16.08.2023, 23:10
Antony86, не Rigidbody, а collider. Вы разницу понимаете?
0
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
17.08.2023, 07:33  [ТС]
ieretsumi, коллайдер есть. Разницу понимаю.
0
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
24.08.2023, 17:44  [ТС]
Уважаемые форумчане, подскажите, пожалуйста, можно ли сделать управление игрока в андроиде через движение самого игрока без джойстика? Прошел по видеоуроку настройку джойстика, но он слетел и выдает ошибку (принудительно пришлось удалить). Есть ли возможность просто создать управление через касание на экране игрока? Большое спасибо!
Код на игроке:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using UnityEngine;
 
public class PlayerController : MonoBehaviour
{
    public float speed = 20f;
    private Rigidbody2D rb;
    public Animator AnimRight;
    //public FixedJoystick Joystick;
   
      void Start()
    {
        rb = GetComponent<Rigidbody2D>();
   
    }
 
 
    void Update()
    {
        float moveX = Input.GetAxis("Horizontal");
        float moveX1 = Input.GetAxis("Vertical");
        rb.MovePosition(rb.position + (Vector2.right * moveX) + (Vector2.up * moveX1) * speed * Time.deltaTime);
        //rb.MovePosition(rb.position + (Vector2.right * Joystick.Direction.x) + (Vector2.up * Joystick.Direction.y) * speed * Time.deltaTime);
 
 
        if (moveX == 0)
        AnimRight.SetInteger("Start_Int", 0);
        if (moveX < 0)
        AnimRight.SetInteger("Start_Int", 1);
                    
        if (moveX > 0)
       AnimRight.SetInteger("Start_Int", 2);
           
        //(Input.GetKeyDown(KeyCode.Space)) - условие при нажатии на кнопку пробел
 
    }
 
}
0
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
10.12.2023, 20:02  [ТС]
Добрый день! Подскажите, пожалуйста, как удалить объект во время паузы в игре. Я запускаю функцию Destroy(this.gameObject, 1f); но во время паузы время задержки не срабатывает. Попробовал через Invoke, та же история.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Destroy : MonoBehaviour
{
    
 
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.name == "Player")
        {
              Time.timeScale = 0f;            
              Destroy(this.gameObject, 1f);
            //Invoke("test1", 2f);
          
          }
    }
   
    private void test1() //For Invoke
    {
        Destroy(gameObject);
        print("hello");
    }
 
   
 
 
 
}
0
1149 / 312 / 161
Регистрация: 30.07.2022
Сообщений: 1,792
Записей в блоге: 4
10.12.2023, 21:04
Antony86, смотря какой объект. некоторые объекты эффективнее хранить в PoolObject и просто прятать вместо уничтожения.

но если заморачиваться не хочется, просто на паузе отключайте объекту SpriteRenderer и Collider, а когда снимаете с паузы
уже удалять.
1
0 / 0 / 0
Регистрация: 02.11.2022
Сообщений: 22
06.12.2024, 21:41  [ТС]
Здравствуйте!
Прохожу видеоурок по LeoECS у меня тест проверки через движение игрока. Я вроде все скрипты написал верно ошибки нет, закинул на игрока и у меня должно появится поле для ввода начальной скорости. Но поля нет можно помочь с разбором кода, пжл.
Скрипт на игроке:
C#
1
2
3
4
5
6
using Voody.UniLeo;
 
namespace Client
{
    public class ModelProvider : MonoProvider<ModelComponent>{}
}
И два доп скрипта:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
using UnityEngine;
 
namespace Client
{
    [Serializable]
    public struct MovableComponent
    {
        public CharacterController characterController;
        //public Vector3 velocity;
        public float speed;
        //public float gravity;
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using Leopotam.Ecs;
using UnityEngine;
 
namespace Client
{
    sealed class MovementSystem : IEcsRunSystem
    {
        private readonly EcsWorld _world = null;
        private readonly EcsFilter<ModelComponent, MovableComponent, DirectionComponent> movableFilter = null;
        public void Run()
        {
          foreach (var i in movableFilter)
            {
                ref var modelComponent = ref movableFilter.Get1(i);
                ref var movableComponent = ref movableFilter.Get2(i);
                ref var directionComponent = ref movableFilter.Get3(i);
 
                ref var direction = ref directionComponent.Direction;
                ref var transform = ref modelComponent.modelTransform;
 
                ref var characterController = ref movableComponent.characterController;
                ref var speed = ref movableComponent.speed;
                
                var rawDirection = (transform.right * direction.x) + (transform.forward * direction.z);
 
                characterController.Move(rawDirection * speed * Time.deltaTime);
                
            }  
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2024, 21:41

Написал код в Full Debug, потом переделал в Release - и написанный код не работает
Кто сталкивался с проблемой, написал код в Full Debug потом переделал в Release и написанный код не работает (((

DirectX 9.0 Ищу нормальный рабочий код для вывода текста. В книгах код не работает!
Подскажите нормальный рабочий код для вывода текста на экран. Сложность в том, что при разных версиях DirectX разные коды. В интернете...

Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код
Здравствуйте, столкнулся с такой проблемой. Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код....

Excel: Код в модуле и тот же код в кнопке НЕ РАБОТАЕТ
Здравствуйте! Вопрос такой: Код написан макросом (работает)и помещен в кнопку - НЕ работает. Почему так происходит. Пример в файле. ...

Excel: Код в модуле и тот же код в кнопке НЕ РАБОТАЕТ
Здравствуйте! Вопрос такой: Код написан макросом (работает)и помещен в кнопку - НЕ работает. Почему так происходит. Пример в файле. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru