Не запускает игру на Телефоне из за скрипта Как?

Программирование на Юнити.

Не запускает игру на Телефоне из за скрипта Как?

Сообщение Septimus 22 мар 2022, 03:50

Доброго времени суток. Проект не запускается на телефоне если в нём присутствует наш скрипт. В юнити всё запускается и работает, на телефоне в меню только заходит, уровни не грузит.
Короче вот два скрипта, первая версия оригинальная, её писал тот кто писал всё остальное. А второй скрипт это изменённая версия. В игре он работает, но когда его ставлю после билда игра на телефоне не запускается дальше менюшки. Возвращаю прежнюю версию и снова норм запускается с телефона.

[csharp=]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrapFire : MonoBehaviour
{
[SerializeField] private ParticleSystem _particleFire;
[SerializeField] private float _delay = 2;
private Collider _collider;
void Start()
{
_collider = GetComponent<Collider>();
StartCoroutine("TrapFireOn");
}

// Update is called once per frame
void Update()
{


}

private IEnumerator TrapFireOn()
{
var emission = _particleFire.emission;
while (true)
{
yield return new WaitForSeconds(_delay);
emission.rateOverTime = Mathf.Lerp(0f,0f, 2f * Time.deltaTime);
_collider.enabled = false;
yield return new WaitForSeconds(_delay);
emission.rateOverTime = Mathf.Lerp(200f,200f, 2f * Time.deltaTime);
_collider.enabled = true;
}
}

private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
{
GameObject.FindWithTag("Player").GetComponent<Player>().PlayerDeath();
}
}
}
[/csharp]


2 Версия
[csharp=]using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class TrapFire : MonoBehaviour
{
[SerializeField] private ParticleSystem _particleFire;
private Collider _collider;

public float TimeToStart = 2;
public float TimeInEnd = 2;
public float _delay = 1;
public float timeActive = 2;
public float countAttacks = 2;


void Start()
{
_collider = GetComponent<Collider>();
StartCoroutine("TrapFireOn");
}

// Update is called once per frame
void Update()
{

}

private IEnumerator TrapFireOn()
{
var emission = _particleFire.emission;
while (true)
{
yield return new WaitForSeconds(TimeToStart);
for (int i = 0; i < countAttacks; i++)
{
emission.rateOverTime = Mathf.Lerp(0f, 0f, timeActive * Time.deltaTime);
_collider.enabled = false;
yield return new WaitForSeconds(_delay);
emission.rateOverTime = Mathf.Lerp(200f, 200f, timeActive * Time.deltaTime);
}

yield return new WaitForSeconds(TimeInEnd);
_collider.enabled = true;
}
}

private void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Player"))
{
GameObject.FindWithTag("Player").GetComponent<Player>().PlayerDeath();
}
}
}
[/csharp]

Сам скрипт отвечает за объект внутри уровня - ловушку стреляющую партиклем убивающую игрока при соприкосновении.

ps Это связано не только с конкретным объектом. К примеру сегодня сделали чекпоинт (чел просто заходит в триггер коллайдер и на этом месте спавнится после смерти), в игре всё работает норм, а с телефона игру не запускает.

Я уже хз чё делать. Помогите плз.
Septimus
UNец
 
Сообщения: 3
Зарегистрирован: 22 мар 2022, 03:38

Не запускает игру на Телефоне из за скрипта Как?

Сообщение Septimus 22 мар 2022, 03:51

Доброго времени суток. Проект не запускается на телефоне если в нём присутствует наш скрипт. В юнити всё запускается и работает, на телефоне в меню только заходит, уровни не грузит.
Короче вот два скрипта, первая версия оригинальная, её писал тот кто писал всё остальное. А второй скрипт это изменённая версия. В игре он работает, но когда его ставлю после билда игра на телефоне не запускается дальше менюшки. Возвращаю прежнюю версию и снова норм запускается с телефона.

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrapFire : MonoBehaviour
{
    [SerializeField] private ParticleSystem _particleFire;
    [SerializeField] private float _delay = 2;
    private Collider _collider;
    void Start()
    {
        _collider = GetComponent<Collider>();
        StartCoroutine("TrapFireOn");
    }

    // Update is called once per frame
    void Update()
    {
       
       
    }

    private IEnumerator TrapFireOn()
    {
        var emission = _particleFire.emission;
        while (true)
        {
            yield return new WaitForSeconds(_delay);
            emission.rateOverTime = Mathf.Lerp(0f,0f, 2f * Time.deltaTime);
            _collider.enabled = false;
            yield return new WaitForSeconds(_delay);
            emission.rateOverTime = Mathf.Lerp(200f,200f, 2f * Time.deltaTime);
            _collider.enabled = true;
        }
    }
   
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Player"))
        {
            GameObject.FindWithTag("Player").GetComponent<Player>().PlayerDeath();
        }
    }
}
 



2 Версия
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;

public class TrapFire : MonoBehaviour
{
    [SerializeField] private ParticleSystem _particleFire;
    private Collider _collider;

    public float TimeToStart = 2;
    public float TimeInEnd = 2;
    public float _delay = 1;
    public float timeActive = 2;
    public float countAttacks = 2;


    void Start()
    {
        _collider = GetComponent<Collider>();
        StartCoroutine("TrapFireOn");
    }

    // Update is called once per frame
    void Update()
    {
       
    }

    private IEnumerator TrapFireOn()
    {
        var emission = _particleFire.emission;
        while (true)
        {
            yield return new WaitForSeconds(TimeToStart);
            for (int i = 0; i < countAttacks; i++)
            {
                emission.rateOverTime = Mathf.Lerp(0f, 0f, timeActive * Time.deltaTime);
                _collider.enabled = false;
                yield return new WaitForSeconds(_delay);
                emission.rateOverTime = Mathf.Lerp(200f, 200f, timeActive * Time.deltaTime);
            }
           
            yield return new WaitForSeconds(TimeInEnd);
            _collider.enabled = true;
        }
    }
   
    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Player"))
        {
            GameObject.FindWithTag("Player").GetComponent<Player>().PlayerDeath();
        }
    }
}


Сам скрипт отвечает за объект внутри уровня - ловушку стреляющую партиклем убивающую игрока при соприкосновении.

ps Это связано не только с конкретным объектом. К примеру сегодня сделали чекпоинт (чел просто заходит в триггер коллайдер и на этом месте спавнится после смерти), в игре всё работает норм, а с телефона игру не запускает.

Я уже хз чё делать. Помогите плз.
Septimus
UNец
 
Сообщения: 3
Зарегистрирован: 22 мар 2022, 03:38


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: GoGo.Ru [Bot] и гости: 9