Суббота, 17 Апреля 2021, 03:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Записи участника » labinzevv [35]
Результаты поиска
labinzevvДата: Четверг, 25 Марта 2021, 09:15 | Сообщение # 1 | Тема: Переключение между тремя объектами
частый гость
Сейчас нет на сайте
Цитата djwirtuoz ()
не самое лучшее решение, но для быстрого прототипа подойдет. нет unity под рукой, писал "на глаз", могут быть ошибки

Код

public GameObject a;
public GameObject b;
public GameObject c;
int counter = 0;
int max_count_object;

public bool select = false;

void Update()
{
    selectedTest();
}

public void selectedTest()
{
    if (Input.GetKey(KeyCode.K))
    {
        switch (counter)
        {
            case 0:
                a.SetActive(true);
                b.SetActive(false);
                c.SetActive(false);
                Debug.Log("1");
            case 1:
                a.SetActive(false);
                b.SetActive(true);
                c.SetActive(false);
                Debug.Log("2");
            case 3:
                a.SetActive(false);
                b.SetActive(false);
                c.SetActive(true);
                Debug.Log("3");
        }

        counter++;
        if (counter > max_count_object) { counter = 0; }
    }
}



Отлично! Спасибо за помощь. Сейчас попробую.


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Четверг, 25 Марта 2021, 08:39 | Сообщение # 2 | Тема: Переключение между тремя объектами
частый гость
Сейчас нет на сайте
Привет Народ! Требуется Ваша помощь:
Нужно осуществить переключение между тремя объектами нажатием одной и той-же клавиши.
переключение между двумя сделал следующим образом:
Код

public GameObject a;
public GameObject b;

public bool select = false;

void Update()
{
   selectedTest();
}

public void selectedTest()
{
       if (Input.GetKey(KeyCode.K))
        {
            select = !select;
            if (select == true)
            {
                a.SetActive(false);
                b.SetActive(true);
                Debug.Log("1");
            }
            else
            {
                a.SetActive(true);
                b.SetActive(false);
                Debug.Log("2");
            }
        }
}


А вот как переключаться между тремя объектами (последовательно) Не могу догнать...


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Суббота, 06 Марта 2021, 14:37 | Сообщение # 3 | Тема: Вопрос по Slider UI
частый гость
Сейчас нет на сайте
Привет народ. Создал слайдер для управления зумом камеры. Управляется с клавиатуры (при нажатии клавиш клавиатуры, камера зуимтся и ползунок слайдера тоже двигается) и непосредственно самим слайдером. Всё работает, проблема в том, что при нажатии на клавиши A и D (на них висит перемещение персонажа влево вправо) ползунок слайдера тоже начинает двигаться вверх вниз. При этом эти две клавиши никак не связанны со слайдером, с остальные клавишами всё в порядке. Может кто знает как решить проблему?
p.s. Отключаю все скрипты, которые связанны с управлением (т.е. клавиши A и D вообще никуда не привязаны, проблема всё равно остаётся)

Добавлено (06 Марта 2021, 16:18)
---------------------------------------------
Разобрался в чём проблема: в инспекторе слайдера есть настройка Direction. Она привязывается к осям left to right или up to bottom. В общем слайдер управляется с клавиатуры, либо A и D либо W и S. Осталось узнать, как это отключить...


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv

Сообщение отредактировал labinzevv - Суббота, 06 Марта 2021, 16:14
labinzevvДата: Понедельник, 01 Марта 2021, 16:29 | Сообщение # 4 | Тема: Доступ к children
частый гость
Сейчас нет на сайте
Цитата drcrack ()
var b = ...
if(b) {
...
}

Во! Точно! То что нужно! Оказалось элементарно). Спасибо за помощь!!!+


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Понедельник, 01 Марта 2021, 02:03 | Сообщение # 5 | Тема: Доступ к children
частый гость
Сейчас нет на сайте
Цитата drcrack ()
Если внутри одного S может быть только один B, то ниче не меняется, просто делаешь
Код
var b = obj.GetComponentInChildren<B>();

Если B это просто обьект без скриптов, можно сделать тупее:
Код

var t = obj.transform;
var b = t.GetChild(t.childCount - 1).gameObject;


С этой частью вроде бы разобрался, нашел доступ к объекту B. Спасибо за помощь.
Теперь другая проблема возникла: Весь поиск происходит в Update, чтобы объект В менялся в реальном времени, и по этому пока объекта В нету в cild у объекта А, в логе постоянная ошибка "не найден объект cild". Нужно создать условие if, пока child нету, код внутри не выполняется. А вот как пишется это условие, не знаю...


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Воскресенье, 28 Февраля 2021, 23:02 | Сообщение # 6 | Тема: Доступ к children
частый гость
Сейчас нет на сайте
Цитата Sanchez06 ()
Если у тебя скрипт В в единственном экземпляре, то можешь сделать GameObject.GetComponentInChildren(B)


В том то и дело, что объектов В в сцену много спавнится и у них имя и тэг одинаковые, по этому нужно получить доступ именно к тому, который стал child объекту, который висит на public GameObject в скрипте


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Воскресенье, 28 Февраля 2021, 18:27 | Сообщение # 7 | Тема: Доступ к children
частый гость
Сейчас нет на сайте
Всем привет. Такой вопрос:
Есть GameObject, на нем висит скрипт "S", в скрипте есть переменная public GameObject obj в которую добавлен объект "A" со сцены. При запуске проекта, к объекту "A" в children добавляется один из заспавненных(может быть любым) объектов "В" (при нажатии клавиши на клавиатуре). Так вот, каким образом можно получить доступ к объекту "В" из скрипта "S", чтобы можно было изменить его свойства из созданного мной метода в скрипте "S"?


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Воскресенье, 28 Февраля 2021, 16:48 | Сообщение # 8 | Тема: Некорректное срабатывание
частый гость
Сейчас нет на сайте
Всем спасибо. Решил проблему так: В Update меняю тег объекта (с помощью переключателя bool и if)
А уже в OnTriggerStay код выполняется при смене тега. Как то так..


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Суббота, 27 Февраля 2021, 17:28 | Сообщение # 9 | Тема: Некорректное срабатывание
частый гость
Сейчас нет на сайте
Цитата drcrack ()
Я ж написал как правильно (и в 2-3 раза быстрее)

Всё теперь догнал) Спасибо за подсказку, одной проблемой меньше.


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Суббота, 27 Февраля 2021, 15:09 | Сообщение # 10 | Тема: Некорректное срабатывание
частый гость
Сейчас нет на сайте
Цитата drcrack ()
не по теме, но как вообще пришло в голову написать это таким образом, вместо transform.rotation = hand.rotation?


Ну присвоение координат вращения того объекта к которому будет Child объект, на котором висит скрипт.
Если не правильно, подскажи, как сделать корректно. Просто оно в данном виде работает)


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Суббота, 27 Февраля 2021, 14:55 | Сообщение # 11 | Тема: Некорректное срабатывание
частый гость
Сейчас нет на сайте
Цитата IlyaKos ()
Так, пока ты в триггере, у тебя переменная постоянно моргает с тру на фолс туда-сюда, поэтому такой результат.


Да, уже перенёс handUp = !handUp; в if (Input.GetKeyDown(KeyCode.G)) Всё равно продолжает сбиваться...


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Суббота, 27 Февраля 2021, 13:45 | Сообщение # 12 | Тема: Некорректное срабатывание
частый гость
Сейчас нет на сайте
Всем привет. Такая проблема:
Делаю переключатель на основе If и bool в OnTriggerStay (код ниже) дело в том, что иногда он срабатывает как надо, то есть по очереди выполняет if и else, а иногда может по три раза выполнить if, потом один раз else и наоборот, в общем сбивается. Может кто нибудь сталкивался и знает как решить эту проблему?

Код

public bool handUp = false;

void OnTriggerStay(Collider other)
    {
        if (other.tag == "hand")
        {
            handUp = !handUp;  

            if (Input.GetKeyDown(KeyCode.G))  
            {
                if (handUp == true)                         
                {
                    obj_Rigidbody.freezeRotation = true;
                    obj_Rigidbody.constraints = RigidbodyConstraints.FreezePosition;

                    transform.rotation = new Quaternion(hand.transform.rotation.x, hand.transform.rotation.y,
                    hand.transform.rotation.z, hand.transform.rotation.w);

                    transform.position = new Vector3(hand.transform.position.x, -2.2f, hand.transform.position.z);
                    
                    transform.parent = GameObject.Find("hand").transform;

                    Debug.Log("1");
                }
                else
                {
                    obj_Rigidbody.constraints = RigidbodyConstraints.None;  

                    transform.parent = null;

                    Debug.Log("2");

                }
            }
        }
    }


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv

Сообщение отредактировал labinzevv - Суббота, 27 Февраля 2021, 13:48
labinzevvДата: Среда, 24 Февраля 2021, 23:21 | Сообщение # 13 | Тема: Подключить к скрипту неактивный объект.
частый гость
Сейчас нет на сайте
О! Спасибо огромное!!! Выручил!+

3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Среда, 24 Февраля 2021, 20:17 | Сообщение # 14 | Тема: Подключить к скрипту неактивный объект.
частый гость
Сейчас нет на сайте
Который нужно привязать к скрипту 1, а из префаба много спавниться будут

3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Среда, 24 Февраля 2021, 01:11 | Сообщение # 15 | Тема: Подключить к скрипту неактивный объект.
частый гость
Сейчас нет на сайте
Всем привет. Такая проблема:
Есть префаб (периодически спавнится в сцену), на нём висит скрипт, в скрипте есть публичная переменная Transform, в которую из сцены нужно запихать transform неактивного объекта, причём его чилдрена (этот объект периодически активируется\деактивируется, но при старте сцены он должен быть неактивен). Есть ли решение? Хотя бы с чего начать копать? Пробовал поиск по ключам string ничего не вышло...


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Четверг, 14 Января 2021, 00:40 | Сообщение # 16 | Тема: проблемы с анимациями
частый гость
Сейчас нет на сайте
Народ помогите! Проблема с анимациями:
Было всё норм, а последнее время в инспекторе всех анимаций(даже созданных в юнити) появилось сообщение:
"Root contains position and rotation curves" и после этого анимации работают не так как надо. До этого такого никогда не было...
Подскажите, может где-то нажал что нибудь не то...


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Воскресенье, 10 Января 2021, 08:11 | Сообщение # 17 | Тема: Про циклы
частый гость
Сейчас нет на сайте
Привет Народ! Помогите решить вопрос:
есть массив, который заполняется объектами с тегом, через цикл при старте сцены.
Потом, объекты постепенно из сцены удаляются (из массива тоже соответственно).
Нужно сделать так, чтобы когда этих объектов стало ноль, сцена перезагрузилась.
Как это организовать.
Вот сам цикл:
Код
public class find : MonoBehaviour  //цикл для поиска группы GameObject по тегу
{
    public GameObject[] mFind = { };    //массив передающий объекты в "public Transform[] chased;"

    void Update()
    {
        mFind = GameObject.FindGameObjectsWithTag("characters");

        for (int i = 1; i < mFind.Length; i++)
        {
            if (i <= 0)
            {
                SceneManager.LoadScene("stage1");
            }
        }
    }
}


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
labinzevvДата: Пятница, 31 Июля 2020, 20:18 | Сообщение # 18 | Тема: Удаление объекта из массива
частый гость
Сейчас нет на сайте
Всем привет. Следующий вопрос:
есть массив GameObject[] mChased (используется для преследования)
В определенный момент объекты из массива удаляются, после этого ошибка:

MissingReferenceException: The object of type 'Transform' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.Transform.get_position () (at <d1422b3fc93746018c92eda852993b93>:0)
controlWolf.Update () (at Assets/Scripts/controlWolf.cs:100)

Вопрос: как из массива удалить поля missing, чтобы избежать ошибки
Пробовал в update запускать цикл for, который заново заполняет массив, ошибка исчезает но в этом случае
объект который потерял цель преследования перестаёт работать вообще.
Подскажите решение плиз.
Вот скрипт:
Код

public Transform[] chased;            
public Transform[] patrolPoint;     

public GameObject[] mChased = { };   
public GameObject[] mPoint = { };     

    void Start()
    {
        mChased = GameObject.FindGameObjectsWithTag("characters");   
        chased = new Transform[mChased.Length];                     
                    
        for (int i = 0; i < mChased.Length; i++)                     
        {                    
            chased[i] = mChased[i].transform;                      
        }                    

        mPoint = GameObject.FindGameObjectsWithTag("point");        
        patrolPoint = new Transform[mPoint.Length];                 
                    
        for (int i = 0; i < mPoint.Length; i++)                     
        {                    
            patrolPoint[i] = mPoint[i].transform;                   
        }                    

        randomPoint = Random.Range(0, patrolPoint.Length);
        randomchased = Random.Range(0, chased.Length);
    }
       
    void Update()
    {
        if (chased[0] == false)
        {
            Patroling();
            wolf.SetBool("wolf_attack", false);
            wolf.SetBool("wolf_walk", true);
        }
               
        float distance = Vector3.Distance(chased[randomchased].position, transform.position);

        if (distance > chaseRadius)                    
        {                    
            Patroling();                    
        }                    
        else if (distance <= chaseRadius)          
        {                    
            ChasePlayer();                    
        }         
    }           
}


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv

Сообщение отредактировал labinzevv - Пятница, 31 Июля 2020, 20:19
labinzevvДата: Среда, 29 Июля 2020, 17:51 | Сообщение # 19 | Тема: Переменные для Renderer компонентов
частый гость
Сейчас нет на сайте
Всем привет! Такой вопрос:
есть скрипт для изменения альфаканала материала, в этом скрипте две публичные переменные для
Renderer компонентов. Первый компонент Renderer на родном объекте, а второй добавляю с другого объекта.
При запуске игры, второй компонент из поля исчезает и на его место автоматически присваивается первый компонент.
Пробую добавить второй компонент в ручную уже в запущенной игре- добавляется, а вот работать не хочет. Причем с первым компонентом все ок. Так же первый компонент Renderer.material при запуске игры имеет подпись instance
Может кто подскажет почему это происходит и как с этим бороться?
Вот скрипт: (не полный, то что не по теме вырезал)
Код

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public class levelHealthAndDamage : MonoBehaviour
{

    public Renderer rend;                        
    public Renderer rend2;

    void Start()
    {
        rend = GetComponent<Renderer>();          
        rend2 = GetComponent<Renderer>();                   
    }

IEnumerator invisible()                    
                    
    {
        for (float f = 1f; f >= 0.01; f -= 0.03f)                 
        {
            Color color = rend.material.color;                    
            color.a = f;                    
            rend.material.color = color;                           
            yield return new WaitForSeconds(0.05f);                
        }
    }
    IEnumerator invisible2()                    
                    
    {
        for (float f = 1f; f >= 0.01; f -= 0.03f)                  
        {
            Color color1 = rend2.material.color;                  
            color1.a = f;                    
            rend2.material.color = color1;                        
            yield return new WaitForSeconds(0.05f);               
        }
    }
}


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv

Сообщение отредактировал labinzevv - Среда, 29 Июля 2020, 17:52
labinzevvДата: Суббота, 25 Июля 2020, 11:51 | Сообщение # 20 | Тема: Воздействие силы на navmeshagent
частый гость
Сейчас нет на сайте
Цитата drcrack ()
Код
public NavMeshAgent agent;
float power = -10;
float offset;
void OnEnable() {
  agent.updatePosition = false;
}
void Update() {
  power = Mathf.Clamp(power - 10 * Time.deltaTime, -10, 1000);
  offset = Mathf.Clamp(offset + power * Time.deltaTime, 0, 10);
  transform.position = agent.nextPosition + Vector3.up * offset;
}
public void Boom(float power) {
  this.power += power;
}

как-то так


Спасибо за помощь! Вечером попробую осуществить


3d modeling, unfolding, and texturing. My works: https://vk.com/labinzevv
Форум игроделов » Записи участника » labinzevv [35]
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг