Четверг, 25 Апреля 2024, 09:29

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » Vostrugin [344]
Результаты поиска
VostruginДата: Суббота, 11 Марта 2017, 20:29 | Сообщение # 301 | Тема: Движение объекта
постоянный участник
Сейчас нет на сайте
Добавьте объекту какой-то флаг, который в скрипте будете изменять.



VostruginДата: Четверг, 09 Марта 2017, 21:00 | Сообщение # 302 | Тема: как отправить email в webgl?
постоянный участник
Сейчас нет на сайте
Судя по тексту ошибки в первом посте - браузер не поддерживает веб сокеты. Я думаю, что даже если будет поддерживать - это не решит Вашу проблему.
Я вижу несколько способов решения:
1) Отправлять запрос на свой сервер, который уже будет заниматься отправкой сообщений.
2) Отправлять запрос на какой-то сторонний сервис Mandrill, SendPulse (не сочтите за рекламу).
3) Использовать mailto, но тогда у юзера откроется ассоциированный сайт/приложение и он должен будет подтвердить отправку.
Вот пост с похожей проблемой.






Сообщение отредактировал Vostrugin - Пятница, 10 Марта 2017, 09:05
VostruginДата: Четверг, 09 Марта 2017, 20:13 | Сообщение # 303 | Тема: как отправить email в webgl?
постоянный участник
Сейчас нет на сайте
Как пытаетесь отправить? Самое первое, что в приходит в голову, это отправлять с клиента только реквест с данными на сервис, который будет заниматься отправкой.



VostruginДата: Воскресенье, 05 Марта 2017, 09:31 | Сообщение # 304 | Тема: Random.Range не работает
постоянный участник
Сейчас нет на сайте
Скорее всего у вас уже определён этот класс, как и предположили сверху. Попробуйте обращаться к классу с указанием пространства имён:
Код
UnityEngine.Random.Range(0, 10);

Что бы избежать таких ситуаций старайтесь, что бы название Ваших классов не пересекалось со встроенными классами.




VostruginДата: Суббота, 04 Марта 2017, 18:51 | Сообщение # 305 | Тема: Сложный массив
постоянный участник
Сейчас нет на сайте
Вот пример, в свой код думаю интегрируете.

Код
using UnityEngine;
using System.Collections;
using System.Linq;

public class MyClass : MonoBehaviour {

    public GameObject MyPrefab;
    public List<GameObject> CreatedPrefabs;  

    void Start() {
     CreatedPrefabs = new List<GameObject>();
    }

    void Update() {
      if (Input.GetKeyUp(KeyCode.R))
        {
            var go = Instantiate(MyPrefab);
            CreatedPrefabs.Add(go);

            var findPos = go.transform.position;

            // Если элементов с такой позицией больше 5
            if(CreatedPrefabs.Count(x => x.transform.position == findPos) > 5)
            {
                // Удаляем все объекты с искомой позицией
                CreatedPrefabs.Where(x => x.transform.position == findPos).ToList().ForEach(x => Destroy(x));
                // Оставляем в списки все объекты, кроме объектов с искомой позицией
                CreatedPrefabs = CreatedPrefabs.Where(x => x.transform.position != findPos).ToList();
            }
        }
    }
}






Сообщение отредактировал Vostrugin - Суббота, 04 Марта 2017, 18:55
VostruginДата: Среда, 01 Марта 2017, 22:46 | Сообщение # 306 | Тема: Вопрос-[ответ] по Unity
постоянный участник
Сейчас нет на сайте
Подскажите пожалуйста, как можно реализовать движение монетки при сборе к индикатору? Индикатор - это gui элемент, соответственно лежит на канвасе. Сложность в получение правильных координат индикатора.
Не актуально. ScreenToWorldPoint.






Сообщение отредактировал Vostrugin - Среда, 01 Марта 2017, 23:03
VostruginДата: Понедельник, 14 Марта 2016, 17:25 | Сообщение # 307 | Тема: Генерация случайных фигур
постоянный участник
Сейчас нет на сайте
В сторону шума Перлина не смотрели?



VostruginДата: Четверг, 10 Марта 2016, 22:15 | Сообщение # 308 | Тема: [JS, jQuery] Как выводить сообщения и скрывать их.
постоянный участник
Сейчас нет на сайте
Твой fadeOut применяется ко всему блоку #alerts, а не к конкретному элементу.



VostruginДата: Четверг, 03 Марта 2016, 22:26 | Сообщение # 309 | Тема: Desert Claw: Rising
постоянный участник
Сейчас нет на сайте
EvilT, понял, хорошее решение. GUI органично смотрится. Удачи.



VostruginДата: Четверг, 03 Марта 2016, 22:22 | Сообщение # 310 | Тема: Desert Claw: Rising
постоянный участник
Сейчас нет на сайте
EvilT, картинка приятная. Активные предметы всё время будут подсвечиваться?



VostruginДата: Вторник, 01 Марта 2016, 19:08 | Сообщение # 311 | Тема: Вопрос-[ответ] по Unity
постоянный участник
Сейчас нет на сайте
Vicka, вроде бы так.

Вражина.cs
Код

public class EnemyBase: MonoBehaviour{
public GameObject Target;
void Start() {}
void Update() {
if(Target == null) return; // Пока нет цели не делаем ничего. Это максимально редкий случай.
// some code
}
public void SetTarget(GameObject target) {
Target = target;
}
}


Кто-то, кто спавнит вражин.cs
Код
public GameObject Target;
public GameObject Enemy; // Вражина
void Start() {
for(int i=0; i < 10; i++) {
  var goEnemy = (GameObject)Instantiate(Enemy);
  var enemyBase = goEnemt.GetComponent<EnemyBase>();
  enemyBase.SetTarget(Target); // Задё цель
}
}
void Update() {

};




VostruginДата: Вторник, 01 Марта 2016, 18:58 | Сообщение # 312 | Тема: Вопрос-[ответ] по Unity
постоянный участник
Сейчас нет на сайте
Vicka, не нужно в Update использовать GameObject.Find и иже с ними, это вроде бы вредно. Ещё можно прямо при создание вражины создавать цель, напиши, если нужно будет. А пока так:

Код

GameObject Target;
void Start() {
if(Target == null)Target = GameObject.Find("PlayerObjectName"); // Если задан через инспектор, то мы не трогаем. Если пустой, то ищем.
}

void Update() {
// some code
}






Сообщение отредактировал Vostrugin - Вторник, 01 Марта 2016, 18:59
VostruginДата: Понедельник, 29 Февраля 2016, 15:29 | Сообщение # 313 | Тема: Проверка столкновения двух объектов
постоянный участник
Сейчас нет на сайте
Хотя бы один из объектов должен иметь Rigidbody



VostruginДата: Понедельник, 29 Февраля 2016, 09:37 | Сообщение # 314 | Тема: Рациональное использование ресурсов. Оптимизация
постоянный участник
Сейчас нет на сайте
Tymonr, ты меня обрадовал ;)
seaman, спасибо за наводку, как раз думал как это реализуется в Unity.
И всё же, где тот самый разумный предел количества коллайдеров на 1 сцене? Статических и динамических?




VostruginДата: Воскресенье, 28 Февраля 2016, 22:33 | Сообщение # 315 | Тема: Рациональное использование ресурсов. Оптимизация
постоянный участник
Сейчас нет на сайте
Добрый вечер.
Уважаемые форумчане, поделитесь пожалуйста своим бесценным опытом.
Делаю TDS, большую часть игрового времени игрок проводит на процедурно собранных тайловых островах (150х150, тайл 64 пикселя).
1) Первым слоем ложатся тайлы (22500 объектов). Четверть из этих объектов имеют BoxColider2D. (~5600).
2) Вторым слоем ложатся декорации с CircleColider2D (~1000).
3) Третьим слоем ложатся объекты с CircleColider2D+Rigidbody2D, с которыми можно взаимодействовать (~100).
4) Игрок CircleColider2D+Rigidbody2D. NPC CircleColider2D (~100).
5) Динамически создаваемые объекты, в основном, пока, это пули CircleColider2D+Rigidbody2D (~100).
На выходе имеем около 7000 объектов с BoxColider2D на одной сцене. Для меня остаётся секретом почему всё это ещё не тормозит.
Вопрос: как это можно оптимизировать и стоит ли? Допускаю, что можно выключать объекты не входящие в поле видимости - скажется ли это положительно на производительности? Возможно стоит переехать на матрицу проходимости, таким образом можно убрать коллайдеры у декораций и у тайлов?
Спасибо.




VostruginДата: Суббота, 27 Февраля 2016, 12:04 | Сообщение # 316 | Тема: Поворот и направление движения 2D
постоянный участник
Сейчас нет на сайте
VerdCS, сегодня со свежей головой попробовал твой вариант - работает. Я пробовал до этого так сделать, но видимо где-то ещё устанавливал неправильный поворот пули. Спасибо тебе большое!;)



VostruginДата: Пятница, 26 Февраля 2016, 22:13 | Сообщение # 317 | Тема: Поворот и направление движения 2D
постоянный участник
Сейчас нет на сайте
Добрый вечер.
Имею следующую структуру:
- Объект, который передвигается. Не вращается. Ходовая часть.
-- Объект, который вращается за курсором. Пушка.
--- Объект, который служит фабрикой объектов (инициализирует объекты снарядов).
Исходя из логики вещей снаряды должны лететь в сторону поворота пушки на момент выстрела. Раньше движение было реализовано с помощью AddForce, теперь хочу переделать на ручное управление transform. Но столкнулся с тем, что при манипуляции с transform снаряды двигаются в непонятном для меня направление.
Подскажите пожалуйста, где моя ошибка? Чего я не понимаю?

GunBase.cs (Пушка)
Код

using UnityEngine;
using System.Collections;

public class GunBase : MonoBehaviour {

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
        var target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        Vector3 diff = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
        diff.Normalize();
        float rotZ = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
        transform.rotation = Quaternion.Euler(0f, 0f, (rotZ + 90));
    }
}


GunFire.cs (Место спавна снарядов)
Код

using UnityEngine;
using System.Collections;

public class GunFire : MonoBehaviour {
    public GameObject Bullet;

    // Use this for initialization
    void Start () {
    }
    
    // Update is called once per frame
    void Update () {
        if (Input.GetMouseButtonDown(0))
        {
            var bullet = (GameObject)Instantiate(Bullet, transform.position, Quaternion.identity);
            bullet.transform.up = transform.up;
            var lineBullet = bullet.GetComponent<LineBullet>();
            lineBullet.SetMovement(new LinerMovement());
            lineBullet.IsEnemy = false;
        }
    }
}


Реализация движения снаряда
Код

using UnityEngine;
using System.Collections;

public class LinerMovement : IMovement {
    bool IsAlreadyFired = false;

    public void Move(GameObject entity)
    {
        if (!IsAlreadyFired)
        {
            entity.transform.Translate(entity.transform.up * Time.deltaTime); // не понятное направление
            //entity.GetComponent<Rigidbody2D>().AddForce(entity.transform.up * 1000); // всё работает как нужно
            //IsAlreadyFired = true;
        }
    }
}




VostruginДата: Пятница, 26 Февраля 2016, 21:50 | Сообщение # 318 | Тема: Как сделать задержку при выполнении скрипта
постоянный участник
Сейчас нет на сайте
Antrix, по-моему ничем. Просто тс просил показать реализацию задержки без применения оной.



VostruginДата: Пятница, 26 Февраля 2016, 20:56 | Сообщение # 319 | Тема: Примерный бюджет создания игры.
постоянный участник
Сейчас нет на сайте
Geol0g, работа с платёжными система и хранение средств игрока на игровом счёте далеко не самые сложные и дорогие в плане реализации задачи.



VostruginДата: Пятница, 26 Февраля 2016, 20:05 | Сообщение # 320 | Тема: Как сделать задержку при выполнении скрипта
постоянный участник
Сейчас нет на сайте
Без использования короутины.
Код

float StartDelay = 5f;
float Delay = 5f;

void Start()
{
this.Delay = this.StartDelay;
}

void Update()
{
this.Delay -= Time.deltaTime;
if(this.Delay > 0) return;
Debug.Log("Tick!");
this.RefreshDelay()
}

void RefreshDelay() {
this.Delay = this.StartDelay;
}
    




Форум игроделов » Записи участника » Vostrugin [344]
Поиск:

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