Суббота, 23 Ноября 2024, 01:54

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос-[ответ] по Unity
QWER56Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1
старожил
Сейчас нет на сайте
Вопрос-[Ответ] по Unity3d

  • База скриптов Unity3d
  • Курс Уроков по Unity 3D от Alcatraz

    ConsMark - поисковик по интернет магазинам.

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • LertmindДата: Воскресенье, 22 Мая 2016, 00:44 | Сообщение # 7881
    заслуженный участник
    Сейчас нет на сайте
    drjokerface, мне кажется под CE5 будет сложнее писать из-за небольшого сообщества. В Unity тоже полно багов, в том числе были с освещением и тенями, даже один человек исправлял освещение. Не знаю насколько открыт CE5, но в UE4 при желании можно исправить самому баги и собрать движок. Если проект только под мощные платформы, тогда полагаю в графической части UE4 и CE5 передовые и хорошо подойдут.
    8Observer8Дата: Воскресенье, 22 Мая 2016, 01:48 | Сообщение # 7882
    заслуженный участник
    Сейчас нет на сайте
    Цитата Lertmind ()
    Не знаю насколько открыт CE5

    Они тоже открыли свои исходники для свободного скачивания с github
    drjokerfaceДата: Воскресенье, 22 Мая 2016, 07:39 | Сообщение # 7883
    почетный гость
    Сейчас нет на сайте
    Цитата 8Observer8 ()
    можно исправить самому баги

    В этом вся суть, что своими руками я движок не перелопачу (знаний таких нет), разве что только где-нибудь найду уже исправленную сборку или найму кого-нибудь.
    8Observer8Дата: Вторник, 24 Мая 2016, 20:07 | Сообщение # 7884
    заслуженный участник
    Сейчас нет на сайте
    Цитата Lertmind ()
    Не знаю насколько открыт CE5, но в UE4 при желании можно исправить самому баги и собрать движок.

    К слову сказать: CRYENGINE source code
    AntrixДата: Среда, 01 Июня 2016, 19:22 | Сообщение # 7885
    почетный гость
    Сейчас нет на сайте
    Помогите с одним моментом. Есть стандартный AIThirdPersonController, который умеет передвигаться к установленному Target'у (можно в ходе игры перетаскивать в public поле другие объекты). Так вот, как заставить его двигаться к точке, куда кликнули мышкой (то есть, click to move)? Собственно, если кто не смотрел на этот стандартный префаб, вот код от скрипта перемещения к таргету:

    Код
    using System;
    using UnityEngine;

    namespace UnityStandardAssets.Characters.ThirdPerson
    {
        [RequireComponent(typeof (NavMeshAgent))]
        [RequireComponent(typeof (ThirdPersonCharacter))]
        public class AICharacterControl : MonoBehaviour
        {
            public NavMeshAgent agent { get; private set; }             // the navmesh agent required for the path finding
            public ThirdPersonCharacter character { get; private set; } // the character we are controlling
            public Transform target;                    // target to aim for

            private void Start()
            {
                // get the components on the object we need ( should not be null due to require component so no need to check )
                agent = GetComponentInChildren<NavMeshAgent>();
                character = GetComponent<ThirdPersonCharacter>();

             agent.updateRotation = false;
             agent.updatePosition = true;
            }

            private void Update()
            {
                if (target != null)
                    agent.SetDestination(target.position);

                if (agent.remainingDistance > agent.stoppingDistance)
                    character.Move(agent.desiredVelocity, false, false);
                else
                    character.Move(Vector3.zero, false, false);
                
            }

            public void SetTarget(Transform target)
            {
                this.target = target;
            }
        }
    }


    Сообщение отредактировал Antrix - Среда, 01 Июня 2016, 19:23
    LertmindДата: Среда, 01 Июня 2016, 19:47 | Сообщение # 7886
    заслуженный участник
    Сейчас нет на сайте
    Antrix, если коротко: рейкаст по поверхности, получаешь позицию и вставляешь в agent.SetDestination(target.position);, которая принимает позицию. В инете легко гуглится, ещё в примерах по Mecanim есть сцена с медведем бегущим по клику: https://www.assetstore.unity3d.com/en/#!/content/5328.
    UPD: Чтобы не говнокодить, лучше написать дополнительный компонент, который будет пустой GameObject ставить в месте клика и устанавливать в компоненте AICharacterControl как target.


    Сообщение отредактировал Lertmind - Среда, 01 Июня 2016, 19:58
    AntrixДата: Среда, 01 Июня 2016, 20:48 | Сообщение # 7887
    почетный гость
    Сейчас нет на сайте
    Lertmind
    Посмотрев на код из того примера, я тоже пришел к такому выводу. Подскажите, пожалуйста, как мне через скрипт его туда поставить (а не мышей перетягивать). Я с этими UE4 блупринтами совсем подзабыл элементарные вещи.
    А, вроде бы разобрался. Пытался напрямую найти объект а не через тэг.


    Сообщение отредактировал Antrix - Среда, 01 Июня 2016, 21:00
    EgorbenДата: Понедельник, 06 Июня 2016, 11:59 | Сообщение # 7888
    уже был
    Сейчас нет на сайте
    Знаю, вопрос может показаться глупым для вас, но я хотел спросить: я использовал этот скрипт:
    Код

    using UnityEngine;
    using System.Collections;

    public class gun : MonoBehaviour {
        
        public Transform amm;
        public GameObject point;
        public int speedAmm = 800;
        

        
        // Use this for initialization
        void Start () {
        
        }
        
        // Update is called once per frame
        void Update () {

      
        if(Input.GetKeyDown(KeyCode.Mouse0)){
       Transform g = (Transform)Instantiate(amm, transform.position, transform.rotation);
       g.rigidbody.AddForce(transform.forward*speedAmm);
       point.GetComponent<Light>().enabled = true;
      }
      if(Input.GetKeyUp(KeyCode.Mouse0)){
       point.GetComponent<Light>().enabled = false;
      }
        }
    }


    , повесив на пустой объект, чтобы запускать сферы. Всё работает, но! есть один баг: некоторые сферы летят не вперед, а в бок, и ещё и ГГ тянут за собой. Как это исправить?


    Сообщение отредактировал Egorben - Понедельник, 06 Июня 2016, 12:00
    romeo98Дата: Понедельник, 06 Июня 2016, 12:27 | Сообщение # 7889
    участник
    Сейчас нет на сайте
    Цитата Egorben ()
    Как это исправить?

    Этот пустой объект на котором висит скрипт, как он расположен относительно игрока? Убедись, чтобы он не был внутри, а где-нибудь перед игроком и его коллайдером.

    И еще, я не уверен, но попробуй вместо
    Код
    g.rigidbody.AddForce(transform.forward*speedAmm);


    использовать

    Код
    g.rigidbody.AddForce(Vector3.forward*speedAmm);


    Flist - social platform
    PuzzleSystem - Open-source Unity Asset
    [2D] Mission: Defender
    LertmindДата: Понедельник, 06 Июня 2016, 12:37 | Сообщение # 7890
    заслуженный участник
    Сейчас нет на сайте
    Egorben, в скрипте проблемы нет, кроме использования устаревшего свойства rigidbody. Лететь боком может из-за того, что в месте создания есть объект с коллайдером, который задевается. Как сферы могут тянуть ГГ не понятно, возможно под действием физики. Нужно больше информации, скрины или видео.

    Добавлено (06 июня 2016, 12:37)
    ---------------------------------------------
    Цитата romeo98 ()
    И еще, я не уверен, но попробуй вместо
    Не поможет, AddForce задаётся относительно мировых координат, всегда будет в одну сторону пулять.


    Сообщение отредактировал Lertmind - Понедельник, 06 Июня 2016, 12:37
    EgorbenДата: Понедельник, 06 Июня 2016, 13:01 | Сообщение # 7891
    уже был
    Сейчас нет на сайте
    Цитата romeo98 ()
    Убедись, чтобы он не был внутри, а где-нибудь перед игроком и его коллайдером.

    Нет, я вынес его перед игроком.
    Цитата Lertmind ()
    Лететь боком может из-за того, что в месте создания есть объект с коллайдером, который задевается. Как сферы могут тянуть ГГ не понятно, возможно под действием физики. Нужно больше информации, скрины или видео.

    я скину видео в лс
    NoterstoneДата: Вторник, 07 Июня 2016, 13:48 | Сообщение # 7892
    участник
    Сейчас нет на сайте
    Как проверить мышь над кнопкой?
    berilДата: Вторник, 07 Июня 2016, 14:19 | Сообщение # 7893
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата Noterstone ()
    ак проверить мышь над кнопкой?

    OnPointerEnter




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    NoterstoneДата: Вторник, 07 Июня 2016, 14:44 | Сообщение # 7894
    участник
    Сейчас нет на сайте
    Спасибо.
    AOДата: Среда, 08 Июня 2016, 19:47 | Сообщение # 7895
    был не раз
    Сейчас нет на сайте
    Ребят, такой вопрос. Во время установки Unity 5, выбрал пункт "пакет разработки для Visual Studio"(или как-то так), после чего Visual Studio установилась в Unity как IDE по умолчанию. Только вот MVS в юньке мне совсем не понравилось, и хотелось бы перейти на MonoDevelop(стандартное IDE, если не ошибаюсь). Можно ли это как-то сделать?
    LertmindДата: Среда, 08 Июня 2016, 21:54 | Сообщение # 7896
    заслуженный участник
    Сейчас нет на сайте
    AO, можешь хоть блокнот выбрать, идёшь в меню Edit > Preferences > External Tools > External Script Editor.
    AOДата: Среда, 08 Июня 2016, 23:41 | Сообщение # 7897
    был не раз
    Сейчас нет на сайте
    Lertmind, Спасибо.
    БозингарДата: Четверг, 09 Июня 2016, 11:00 | Сообщение # 7898
    почетный гость
    Сейчас нет на сайте
    Почему операторы && и || дают "Parser error: unexpected symbol..." ?

    #Хийвэл бүү ай, айвал бүү хий.
    AOДата: Пятница, 10 Июня 2016, 22:47 | Сообщение # 7899
    был не раз
    Сейчас нет на сайте
    Как можно изменить цвет примитивного объекта?
    berilДата: Пятница, 10 Июня 2016, 22:57 | Сообщение # 7900
    Я не ленивый, я — энергосберегающий
    Сейчас нет на сайте
    Цитата Бозингар ()
    Почему операторы && и || дают "Parser error: unexpected symbol..." ?

    Код покажи




    Накодил? Убери за собой!
    Инвентарь в Unity(UI)
    Инвентарь в Unity(GUI)
    Поиск:

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