Четверг, 14 Ноября 2024, 10:38

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

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

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

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

    Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54
  • EchoITДата: Пятница, 06 Декабря 2013, 20:09 | Сообщение # 5081
    старожил
    Сейчас нет на сайте
    zisX, а ты не думал отключать рендеринг собственной модели на клиенте? biggrin

    Долгожданный анонсик: State of War

    Сообщение отредактировал EchoIT - Пятница, 06 Декабря 2013, 20:09
    allodsДата: Пятница, 06 Декабря 2013, 21:29 | Сообщение # 5082
    почти ветеран
    Сейчас нет на сайте
    сранно вышло, сделал один проект, 60 объектов на сцене отрисовываются , всего 5 разновидностей объектов и у каждого по своему материалу, батчинг работает, батчит 28и 32 драв коллов.
    Ставлю всем 1 материал, батчит 6 а дравов 54? что за фигня
    NEBRДата: Суббота, 07 Декабря 2013, 10:06 | Сообщение # 5083
    почти ветеран
    Сейчас нет на сайте
    allods, объекты должны быть одинаковые и с однаковым scale!

    King Size #Gamiron12
    kvestproДата: Суббота, 07 Декабря 2013, 15:48 | Сообщение # 5084
    заслуженный участник
    Сейчас нет на сайте
    У меня объект не рендерится (снял галочку с Mesh renderer). есть скрипт, который двигает этот объект. Мне нужно, чтобы на месте объекта отображался спрайт. Как это сделать?
    Конечно же, нужно, чтобы спрайт всегда смотрел в камеру.

    Неактуально, понял как.
    Кому надо, спросите в ЛС, я напишу.


    Инверсная кинематика в Unity
    Алгоритм поиска пути Jump Point Search


    Сообщение отредактировал kvestpro - Суббота, 07 Декабря 2013, 22:00
    allodsДата: Суббота, 07 Декабря 2013, 18:55 | Сообщение # 5085
    почти ветеран
    Сейчас нет на сайте
    Цитата NEBR ()
    объекты должны быть одинаковые и с однаковым scale!

    Да я понимаю но это не отменяет того факта что с 5 материалами больше батчинга чем с 1
    И вообще задолбался я пытатся что то сделать для андроида, я думаю юнити не очень хороший для этого, добавляю всего один объект из 400 поликов и фпс падает с 60 до 25 , какого хера? Как так...

    Добавлено (07.12.2013, 18:55)
    ---------------------------------------------
    может есть какие настройки спрятаны, ну реально добавляя один объект с мобил материалом падает фпс больше чем в 2 раза , УДАЛЯЮ этот объект а фпс остается 25

    NEBRДата: Суббота, 07 Декабря 2013, 19:29 | Сообщение # 5086
    почти ветеран
    Сейчас нет на сайте
    Цитата allods ()
    Да я понимаю но это не отменяет того факта что с 5 материалами больше батчинга чем с 1

    что то делаешь не так, почитай документацию про батчинг


    King Size #Gamiron12
    allodsДата: Суббота, 07 Декабря 2013, 19:57 | Сообщение # 5087
    почти ветеран
    Сейчас нет на сайте
    и еще он работает только на diffuse на все остальное 0 эффекта
    NEBRДата: Суббота, 07 Декабря 2013, 20:33 | Сообщение # 5088
    почти ветеран
    Сейчас нет на сайте
    allods, он работает с любыми шейдерами, главное чтобы материал был ОДИН! Блин, в гугле полно ссылок на эту тему, в том числе на русском. Есть официальная документация - загляни куда нибудь, почитай как это работает. Ты проводишь какие то кривые эксперименты и на их основе делаешь выводы, зачем изобретать велосипед, ведь все это уже давно изучено, нужно просто открыть гугл!

    King Size #Gamiron12
    AdomДата: Суббота, 07 Декабря 2013, 21:28 | Сообщение # 5089
    Печенька!
    Сейчас нет на сайте
    У меня есть скрипт делал сам так вот он создан для того чтобы при хождении игрока по определенным поверхностям.
    Так вот у меня этих поверхностей много и в скрипте это занимает много места и потом с этим будет довольно тяжело работать.
    Помогите заменить некоторые строки что-бы было легче.
    Код
    using UnityEngine;
    using System.Collections;

    public class ControllerD2 : MonoBehaviour {
    public Transform Player;
    public float Speed = 1.0f;
    public MouseLook cam;
    public Camera cam2;
    public float Gravity;
    public ControllerD2 control;
    public bool show;
    public Rigidbody gg;
    private float timeout;
    public float footstepTime = 0.7f;
    public AudioClip step;  
    public AudioClip step2;  
    public float a = 100;
    public float b = 20;  
    public Transform cube;
    private RaycastHit Hit;
    // Use this for initialization
    void Start () {  
    }
    void Update(){  
    Vector3 Direction = Player.TransformDirection(Vector3.down);
    if(Physics.Raycast(Player.position, Direction, out Hit,10000f)){     
    }    
    Screen.lockCursor = true;   
    timeout += Time.deltaTime;   
    if(Input.GetKey(KeyCode.Mouse1)){
    cam.sensitivityX = 2;
    cam.sensitivityY = 2;
    cam2.fieldOfView = 25;
    }else{    
    cam2.fieldOfView = 65;     
    cam.sensitivityX = 10;
    cam.sensitivityY = 10;    
    }
    if(Input.GetKey(KeyCode.W)){
    Player.position +=transform.forward * 1; //вперёд
    }
    if(Input.GetKey(KeyCode.A)){
    transform.position -= transform.right * 1;//Влево  
    }        
    if(Input.GetKey(KeyCode.D)){
    transform.position += transform.right * 1;//Влево  
    }       
    if(Input.GetKey(KeyCode.S)){
    transform.position -= transform.forward * 1;//Назад  
    }     
    {    
    if(Input.GetKey(KeyCode.Space)){   
    Gravity +=0.1f;
    transform.position += transform.up * Speed;
    }
    if(Input.GetKey(KeyCode.LeftShift)){   
    transform.position += transform.forward * 2;
    }
    }
    }
    // Update is called once per frame
    void FixedUpdate () {
    transform.position -= transform.up * Time.deltaTime;  
    if(Input.GetKey(KeyCode.W)&timeout>=Speed && Hit.collider.name == "Dirt"){//это
    timeout = 0;
    audio.PlayOneShot(step);
    }else{
    if(Input.GetKey(KeyCode.W)&timeout>=Speed && Hit.collider.name == "Grass"){
    timeout = 0;
    audio.PlayOneShot(step2);     
    }     
    }

    if(Input.GetKey(KeyCode.A)&timeout>=Speed && Hit.collider.name == "Dirt"){//это
    timeout = 0;
    audio.PlayOneShot(step);
    }else{
    if(Input.GetKey(KeyCode.A)&timeout>=Speed && Hit.collider.name == "Grass"){
    timeout = 0;
    audio.PlayOneShot(step2);     
    }    
    }

    if(Input.GetKey(KeyCode.D)&timeout>=Speed && Hit.collider.name == "Dirt"){// это
    timeout = 0;
    audio.PlayOneShot(step);
    }else{
    if(Input.GetKey(KeyCode.D)&timeout>=Speed && Hit.collider.name == "Grass"){
    timeout = 0;
    audio.PlayOneShot(step2);     
    }    
    }

    if(Input.GetKey(KeyCode.S)&timeout>=Speed &&Hit.collider.name == "Dirt"){ // Вот это
    timeout = 0;
    audio.PlayOneShot(step);
    }else{    
    if(Input.GetKey(KeyCode.S)&timeout>=Speed && Hit.collider.name == "Grass"){
    timeout = 0;
    audio.PlayOneShot(step2);     
    }    
    }
    }
    }
    allodsДата: Суббота, 07 Декабря 2013, 21:47 | Сообщение # 5090
    почти ветеран
    Сейчас нет на сайте
    Цитата Adom ()
    нужно просто открыть гугл!

    Я гуглил, и яндексел и яахуил, я знаю как оно работает но для андроида отказывается работать
    NEBRДата: Суббота, 07 Декабря 2013, 21:49 | Сообщение # 5091
    почти ветеран
    Сейчас нет на сайте
    Цитата allods ()
    Я гуглил, и яндексел и яахуил, я знаю как оно работает но для андроида отказывается работать

    странно, у меня почему то все отлично работает


    King Size #Gamiron12
    allodsДата: Суббота, 07 Декабря 2013, 21:50 | Сообщение # 5092
    почти ветеран
    Сейчас нет на сайте
    Цитата Adom ()
    Помогите заменить некоторые строки что-бы было легче.

    Зачем else если ты все ровно потом if ставишь, и не совсем понял почему ты все по 4 раза написал
    AdomДата: Суббота, 07 Декабря 2013, 21:55 | Сообщение # 5093
    Печенька!
    Сейчас нет на сайте
    allods, Ну дык что-бы при хотьбе влево и вправо тоже звук был
    allodsДата: Суббота, 07 Декабря 2013, 22:13 | Сообщение # 5094
    почти ветеран
    Сейчас нет на сайте
    а нельзя ли сделать переменную walk=true; и не надо 4 фигни писать
    KiraДата: Суббота, 07 Декабря 2013, 22:39 | Сообщение # 5095
    заслуженный участник
    Сейчас нет на сайте
    Цитата allods ()
    И вообще задолбался я пытатся что то сделать для андроида, я думаю юнити не очень хороший для этого, добавляю всего один объект из 400 поликов и фпс падает с 60 до 25 , какого хера? Как так...
    Добавлено (07.12.2013, 18:55)
    ---------------------------------------------
    может есть какие настройки спрятаны, ну реально добавляя один объект с мобил материалом падает фпс больше чем в 2 раза , УДАЛЯЮ этот объект а фпс остается 25

    оуу, я добавлял до 10 тыс поликов и все норм. Даже модель на 6тыс поликов анимированая, и помноженная на 10 без тормозов на мали 400.
    кстати посмотри настройки qality может в них дело.


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн


    Сообщение отредактировал Kira - Суббота, 07 Декабря 2013, 22:40
    AdomДата: Суббота, 07 Декабря 2013, 22:42 | Сообщение # 5096
    Печенька!
    Сейчас нет на сайте
    Код
    if(walk == true){    
    audio.PlayOneShot(step);     
    }else{     
    if(walk == false){  
    audio.PlayOneShot(step2);       
    }        
    }
    Так ?
    allodsДата: Суббота, 07 Декабря 2013, 23:06 | Сообщение # 5097
    почти ветеран
    Сейчас нет на сайте
    Цитата Adom ()
    Так ?

    Код
    if(walk && Hit.collider.name == "Dirt"){//это
    timeout = 0;
    audio.PlayOneShot(step);
    }
    if(!walk && Hit.collider.name == "Grass"){
    timeout = 0;
    audio.PlayOneShot(step2);
    }


    Добавлено (07.12.2013, 23:03)
    ---------------------------------------------
    а еще луче

    Код
    if(walk)
    {
            timeout = 0;
            audio.PlayOneShot(sound);     
    }
    if(Hit.collider.name == "Dirt")
           sound=step;
    if(Hit.collider.name == "Grass")
           sound=step2;


    Добавлено (07.12.2013, 23:06)
    ---------------------------------------------
    Цитата Kira ()
    оуу, я добавлял до 10 тыс поликов и все норм. Даже модель на 6тыс поликов анимированая, и помноженная на 10 без тормозов на мали 400.
    кстати посмотри настройки qality может в них дело.

    дело в том что у меня тоже все норм, но иногда случается баг и блокируется на 30 не повышается, даже если вообще все удалить, решается проблема созданием нового проекта


    Сообщение отредактировал allods - Суббота, 07 Декабря 2013, 23:07
    KiraДата: Воскресенье, 08 Декабря 2013, 00:01 | Сообщение # 5098
    заслуженный участник
    Сейчас нет на сайте
    Цитата allods ()
    дело в том что у меня тоже все норм, но иногда случается баг и блокируется на 30 не повышается, даже если вообще все удалить, решается проблема созданием нового проекта

    фпс? тормазит? вроде как 30 стандартно для дроида.


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    allodsДата: Воскресенье, 08 Декабря 2013, 00:15 | Сообщение # 5099
    почти ветеран
    Сейчас нет на сайте
    Цитата Kira ()
    фпс? тормазит? вроде как 30 стандартно для дроида.

    ну ладно смерюсь с 30
    KiraДата: Воскресенье, 08 Декабря 2013, 00:22 | Сообщение # 5100
    заслуженный участник
    Сейчас нет на сайте
    allods, попробуй вот что
    Application.targetFrameRate=60;

    Добавлено (08.12.2013, 00:22)
    ---------------------------------------------
    Правда бывают железки не способный работать с 60, или дрова или само железо хз. из за чего.


    Unity3d разработчик на С#. Лучшее спасибо + в репу.
    "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
    "Человек, который никогда не ошибался никогда не пробовал ничего нового".
    "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
    Поиск:

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