Воскресенье, 24 Ноября 2024, 14:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
LertmindДата: Воскресенье, 17 Апреля 2016, 16:52 | Сообщение # 381 | Тема: Проверка на столкновения
заслуженный участник
Сейчас нет на сайте
Цитата Robinzon787 ()
но бывают случаи когда этот объект может быть уничтожен
Если объект уничтожается, который вошёл, то не понятно почему анимация такая же, как после выхода. В любом случае, используй OnDestroy или OnDisable, они вызываются перед удалением объекта. То есть, если ты крутил анимацию в OnTriggerExit, дублируешь код анимации в один из этих обработчиков.
LertmindДата: Воскресенье, 17 Апреля 2016, 03:04 | Сообщение # 382 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
Цитата SkySupra ()
также предполагал мб батчикг есть, если запихать всё в один Canvas
Если перекладывать элементы без установленного материала в разные Canvas, то увеличивается только Batches в окне статистики, но SetPass calls остаются на месте. Вот если использовать материалы, тогда с одним Canvas меньше SetPass.


Сообщение отредактировал Lertmind - Воскресенье, 17 Апреля 2016, 03:06
LertmindДата: Воскресенье, 17 Апреля 2016, 00:11 | Сообщение # 383 | Тема: Проверка на столкновения
заслуженный участник
Сейчас нет на сайте
Я так понял, что ты хочешь экстраполировать движение объекта, чтобы узнать возможные столкновения, но выполнить код, если прогнозируемого столкновения не случилось?
Это очень странно. Либо объясни лучше, либо расскажи какой эффект тебе нужен, возможно ты пытаешься решить задачу не тем способом.
LertmindДата: Суббота, 16 Апреля 2016, 19:19 | Сообщение # 384 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
Цитата SkySupra ()
Я бы делал это всё в одном Canvas.
Ты ведь понимаешь, что это будет неудобно? Придётся каждый кадр вычислять относительную позицию и синхронизировать с элементом у Canvas, а если полоска жизни зависит от дальности камеры, то придётся ещё и размер менять в зависимости от расстояния. То есть у тебя прибавятся код и вычисления, но сэкономишь возможно несколько килобайт.
LertmindДата: Пятница, 15 Апреля 2016, 17:19 | Сообщение # 385 | Тема: Серый экран при запуске.
заслуженный участник
Сейчас нет на сайте
GameCoder123, это ветка уже устарела и решение не актуально.
Способ из твоего "P.S." я писал на форуме Unity http://forum.unity3d.com/threads....2415582, в vk только перевели, и он нужен был только для первой версии 5.3 и только для x86 систем.
LertmindДата: Четверг, 14 Апреля 2016, 20:45 | Сообщение # 386 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
Потенциал, если бы ты перевёл текст, то понял что тебе нужно исправить ошибки в скриптах.
LertmindДата: Четверг, 14 Апреля 2016, 18:48 | Сообщение # 387 | Тема: Как вывести картинку на определенное время?
заслуженный участник
Сейчас нет на сайте
MystHunt правильно сказал, но я бы использовал корутины так (код не проверял в проекте):
Код
public class GiveGrib : MonoBehaviour
{
    public GameObject Image_; // Есть класс с названием Image
    public float VisibleTime = 0.6f;
    
    private GameObject player;
    
    void Awake()
    {
        Image_.SetActive(false);
        player = GameObject.FindGameObjectWithTag("Player");
    }
    
    void Update()
    {
        if (Input.GetButtonDown("Use") && Vector3.Distance(transform.position, player.transform.position) < 2)
        {
            StartCoroutine(ShowImage());
        }
    }
    
    IEnumerator ShowImage()
    {
        if (Image_.activeInHierarchy)
            yield break; // Если уже показывается - выходим
        Image_.SetActive(true);
        yield return new WaitForSeconds(VisibleTime);
        Image_.SetActive(false);
    }
}
LertmindДата: Среда, 13 Апреля 2016, 20:53 | Сообщение # 388 | Тема: Матрица в Borland c++
заслуженный участник
Сейчас нет на сайте
LertmindДата: Среда, 13 Апреля 2016, 19:43 | Сообщение # 389 | Тема: Матрица в Borland c++
заслуженный участник
Сейчас нет на сайте
JHawk, уточни, Borland C++, который для DOS? Приложение консольное?
LertmindДата: Среда, 13 Апреля 2016, 19:37 | Сообщение # 390 | Тема: Матрица в Borland c++
заслуженный участник
Сейчас нет на сайте
"Разработать программу сложной модульной структуры", ахаха.
Цитата JHawk ()
С борландом никогда не работал
При чём здесь борланд? Ты просто не умеешь программировать на C или C++, потому что для такой элементарной задачи специфичного для борланда практически нет, кроме того, что он древний.
LertmindДата: Среда, 13 Апреля 2016, 03:04 | Сообщение # 391 | Тема: Создание зоны видимости турели C#
заслуженный участник
Сейчас нет на сайте
Цитата dima13230 ()
У меня всплыл другой вопрос: как определить какое число в массиве самое маленькое?
Ты обязан использовать Linq, это так весело:
Код
using UnityEngine;
using System.Linq;

public class TestMin : MonoBehaviour
{
    void Start()
    {
        // Создаём массив со случайными числами
        int[] array = new int[10].Select(x => Random.Range(0, 100)).ToArray();
        // Ищем минимальное число
        int minValue = array.Min();
        // Строка для вывода массива
        string arrayStr = array.Select(x => x.ToString()).Aggregate((result, x) => result + ", " + x);
        Debug.Log(arrayStr + " => " + minValue);
    }
}
LertmindДата: Понедельник, 11 Апреля 2016, 19:11 | Сообщение # 392 | Тема: Выравнивание при стыковке блоков
заслуженный участник
Сейчас нет на сайте
Для начала сожги всё, что написал. FixedJoint здесь вообще не сдался.
Если хочешь как у Lego, то надо как раз по сетки, только размер сетки это выступ у блока. Посмотри их программу для создания.
Если хочешь прикреплять их в любом месте на грани, то это уже не Lego, а просто блок на блоке, но без физики.
LertmindДата: Понедельник, 11 Апреля 2016, 18:52 | Сообщение # 393 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
Цитата Niro ()
чтобы максимально оптимизировать сцену без потери качества?
Читай документацию english, русский.
LertmindДата: Воскресенье, 10 Апреля 2016, 17:53 | Сообщение # 394 | Тема: Проверка с отработкой условия в цикле
заслуженный участник
Сейчас нет на сайте
Я писал "Хотя я бы код добавления коллайдера вынес в метод, который бы вызывал через скрипт MouseClick".
Вот как стоит делать:
Код
// ClickManager.cs вместо неуместного названия Scripts.cs
using UnityEngine;
using System.Collections;

public class ClickManager : MonoBehaviour
{
    public GameObject[] players; // Нужно присвоить объекты через Inspector или другой код
    private int boxIndex = 0;

    void Awake()
    {
        AddNextCollider();
    }

    public void AddNextCollider()
    {
        if (boxIndex < players.Length)
        {
            var boxCol = players[boxIndex].AddComponent<BoxCollider2D>();
            boxCol.size = new Vector2(7, 7);
            boxIndex++;
        }
    }
}


Код
// MouseClick.cs
using UnityEngine;
using System.Collections;

public class MouseClick : MonoBehaviour
{
    void OnMouseDown()
    {
        Destroy(GetComponent<BoxCollider2D>());
        var cm = Object.FindObjectOfType<ClickManager>(); // Работает если ClickManager один
        cm.AddNextCollider();

        Debug.Log(name + " has been clicked");
    }
}

Добавлено (10 апреля 2016, 17:53)
---------------------------------------------
Animator добавишь сам. ClickManager можно сделать синглтоном (Singleton).

LertmindДата: Воскресенье, 10 Апреля 2016, 15:54 | Сообщение # 395 | Тема: Проверка с отработкой условия в цикле
заслуженный участник
Сейчас нет на сайте
Сейчас проверил, всё работает как должно. Только стоит учитывать: порядок объектов, которые у тебя в "player", может отличаться от желаемого; Input.GetMouseButtonDown срабатывает при любом нажатии на экран, поэтому на следующий объект BoxCollider2D вешается даже если не была клика на предыдущем BoxCollider2D.
LertmindДата: Воскресенье, 10 Апреля 2016, 04:01 | Сообщение # 396 | Тема: Candy Rush
заслуженный участник
Сейчас нет на сайте
Косяки:
* Видны стыки между платформами.
* Когда нажимается кнопка паузы, главный герой не должен прыгать.
* Иногда все подбираемые предметы резко меняют положение.
* Когда ГГ врезается в лёд, то эффект исчезновения оставляет сначала куски облачков и через промежуток времени целое облако. Кроме этого восстанавливаются подбираемые предметы. Эффект от взрыва ракеты тоже стоило бы довести до конца.
* Если подобран магнит, после смерти подбираемые предметы всё равно притягиваются.

Добавлено (10 апреля 2016, 04:01)
---------------------------------------------
* Необходим индикатор бонуса, если с "крыльями" и "магнитом" видно, то с "двойным прыжком" не понятно когда бонус отключился. Например, круглая иконка бонуса с круговой полоской таймера в левом верхнем углу.

LertmindДата: Воскресенье, 10 Апреля 2016, 02:55 | Сообщение # 397 | Тема: Проверка с отработкой условия в цикле
заслуженный участник
Сейчас нет на сайте
Попробуй так (код не проверял):
Код
using UnityEngine;
using System.Collections;

public class Scripts : MonoBehaviour
{
    public GameObject ofp;
    private BoxCollider2D boxCol;
    public GameObject[] player;
    private int boxIndex = 0;

    void Awake()
    {
        player = GameObject.FindGameObjectsWithTag("Player");
        for (int i = 0; i < 5; i++)
        {
            Debug.Log("Player Number " + i + " is named " + player[i].name);
        }
    }

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            boxIndex++;
            if (boxIndex < player.Length)
            {
                boxCol = player[boxIndex].AddComponent<BoxCollider2D>();
                boxCol.size = new Vector2(7, 7);
            }
        }
    }
}
Хотя я бы код добавления коллайдера вынес в метод, который бы вызывал через скрипт MouseClick, а ещё лучше через делегаты/события.


Сообщение отредактировал Lertmind - Воскресенье, 10 Апреля 2016, 02:56
LertmindДата: Суббота, 09 Апреля 2016, 23:46 | Сообщение # 398 | Тема: Помогите с pascal abc!
заслуженный участник
Сейчас нет на сайте
Когда ты запускаешь консольное приложение кликая по exe-файлу, чтобы окно не закрылось нужно ожидать ввода. В Pascal это можно сделать с помощью ReadLn, например:
Код
const Pi = 3.1415;

var
  r: real; // радиус круга
  S: real; // площадь круга
begin
  write('Введите радиус круга: ');
  readln(r);
  S := Pi*r*r;
  writeln('Площадь круга равна ',S);
  writeln('Нажми Enter');
  readln;
end.
Фразу "Программа завершена, нажмите любую клавишу . . ." и ожидание делает среда разработки для тебя.


Сообщение отредактировал Lertmind - Воскресенье, 10 Апреля 2016, 01:48
LertmindДата: Четверг, 07 Апреля 2016, 21:59 | Сообщение # 399 | Тема: Вопрос-[ответ] по Unity
заслуженный участник
Сейчас нет на сайте
allods,
Такой код выводит все материалы по именам:
Код
    void Start()
    {
        var r = GetComponent<Renderer>();
        foreach (var m in r.sharedMaterials)
        {
            Debug.Log(m.name);
        }
    }

А такой добавляет к названию материала " (Instance)", т.е. для name1 "name1 (Instance)":
Код
    void Start()
    {
        var r = GetComponent<Renderer>();
        foreach (var m in r.materials)
        {
            Debug.Log(m.name);
        }
    }

Может поэтому не находится?
LertmindДата: Четверг, 07 Апреля 2016, 18:14 | Сообщение # 400 | Тема: Как преобразовать yaw, pitch и roll к матрицам в Irrlicht?
заслуженный участник
Сейчас нет на сайте
В документации у Irrlicht по irr::core::CMatrix4< T > вроде все соответствующие функции есть, нужно только переписать.
Поиск:

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