Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 28.06.2019
Сообщений: 12
1

Игра ужасно лагает

17.08.2019, 15:53. Показов 693. Ответов 2
Метки нет (Все метки)

Здравствуй форум) Такая проблема, изучаю Unity, делаю пробные игры для Андроид. Мало того, что игра занимает практически пустой 64мб (все текстуры занимают около 400кб), так очень сильно тупят кнопки управления. Кнопки управления использовал стандартные, из Canvas и привязывал к ним Event Trigger, запуская функции персонажа с помощью PointerDown и тд. Проверяя на компьютере, лагов нет. Вопрос: можно ли это как-то устранить?)

Исходный код контроллера персонажа:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
using UnityEngine;
using UnityEngine.SceneManagement;
 
public class playerControl_v2 : MonoBehaviour
{
    public float speed = 0.1f;
    public float jumpForce = 5f;
    public float deadForce = 3f;
    public GameObject Camera;
 
    [HideInInspector]
    public bool is_finish = false;
 
    private Rigidbody2D rb;
    private SpriteRenderer sr;
    private BoxCollider2D coll;
 
    private float speedX;
    private bool isGrounded = false;
 
    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        sr = GetComponent<SpriteRenderer>();
        coll = GetComponent<BoxCollider2D>();
    }
 
    void Update()
    {
        rb.transform.Translate(speedX * Time.deltaTime, 0, 0);
        if (!((speedX < 0 && Camera.transform.position.x - speedX <= transform.position.x + 20) || (speedX > 0 && Camera.transform.position.x + speedX >= transform.position.x + 10)))
        {
            Camera.transform.Translate(speedX * Time.deltaTime, 0, 0);
        }      
 
        if (transform.position.y < -30)
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        }
    }
 
    void OnCollisionEnter2D(Collision2D col)
    {
        if (col.gameObject.tag == "Spikes")
        {
            Dead();
        }
        else if (col.gameObject.tag == "Ground")
            isGrounded = true;
    }
 
    void OnCollisionExit2D(Collision2D col)
    {
        if (col.gameObject.tag == "Ground")
            isGrounded = false;
    }
 
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "Spikes")
        {
            Dead();
        }
        else if (collision.gameObject.tag == "Finish")
        {
            is_finish = true;
        }
        else if (collision.gameObject.tag == "Ground")
        {
            isGrounded = true;
        }
    }
 
    public void LeftButtonDown()
    {
        if (!is_finish)
        {
            speedX = -speed;
            sr.flipX = true;
        }
    }
 
    public void RightButtonDown()
    {
        if (!is_finish)
        {
            speedX = speed;
            sr.flipX = false;
        }
    }
 
    public void Jump()
    {
        if (isGrounded && !is_finish)
        {
            rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
        }
    }
 
    public void Stop()
    {
        speedX = 0;
    }
 
    public void Dead()
    {
        coll.isTrigger = true;
        Stop();
        rb.AddForce(Vector2.up * deadForce, ForceMode2D.Impulse);
        rb.freezeRotation = false;
        rb.transform.rotation = Quaternion.Euler(0, 0, 30);
    } 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.08.2019, 15:53
Ответы с готовыми решениями:

Лагает игра на андроид
добрый день! у меня на более поздних версиях андроид игра лагает сделанная на юнити. как это можно...

Комп лагает ужасно
Всем привет. Сегодня включил компьютер и у меня очень долго загружался windows,где написано &quot;Добро...

Ужасно лагает win7
Вчера играл в игру и тут она начала ужасно виснуть.Я прожал ctrl+alt+del,но результатом мне был...

Лагает комп ужасно просто
Врубаю комп стоит заставка раб. стола, не могу открыть какую либо папку, даже Ctrl+alt+delete не...

2
vk.com/pppoe252110
58 / 40 / 20
Регистрация: 31.05.2019
Сообщений: 248
18.08.2019, 04:54 2
У вас наверное ошибки в проекте, из за этого может быть низкий фпс, и если вы думаете, что из за ошибок нет просадок фпс, то это не так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using UnityEngine;
using System.Collections;
 
public class FPSDisplay : MonoBehaviour
{
    float deltaTime = 0.0f;
 
    void Update()
    {
        deltaTime += (Time.unscaledDeltaTime - deltaTime) * 0.1f;
    }
 
    void OnGUI()
    {
        int w = Screen.width, h = Screen.height;
 
        GUIStyle style = new GUIStyle();
 
        Rect rect = new Rect(0, 0, w, h * 2 / 100);
        style.alignment = TextAnchor.UpperLeft;
        style.fontSize = h * 2 / 100;
        style.normal.textColor = new Color (0.0f, 0.0f, 0.5f, 1.0f);
        float msec = deltaTime * 1000.0f;
        float fps = 1.0f / deltaTime;
        string text = string.Format("{0:0.0} ms ({1:0.} fps)", msec, fps);
        GUI.Label(rect, text, style);
    }
}
0
0 / 0 / 0
Регистрация: 28.06.2019
Сообщений: 12
18.08.2019, 18:50  [ТС] 3
Стабильные 60
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.08.2019, 18:50

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Игра лагает
Здравствуйте всем!! Установил на hp probook 4540s игру nfs most_wanted 2012. Вроде системным...

После переустановки лагает игра! специалисты
После переустановки windows CS:Go начала лагать! устанавливал драйвера для своей видеокарты от...

Игра лагает из-за диска. Как исправить?
Купил GTA 5, поначалу играл на средне-высоких настройках со стабильными 60 fps и без проблем. Но со...

Лагает игра после 10-20 минут игры
Здравствуйте! Играл я себе на такой системе: CPU:AMD Athlon II X4 641 2.8 Ghz RAM: 4GB 1833...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.