Доброго времени суток. Проект не запускается на телефоне если в нём присутствует наш скрипт. В юнити всё запускается и работает, на телефоне в меню только заходит, уровни не грузит.
Короче вот два скрипта, первая версия оригинальная, её писал тот кто писал всё остальное. А второй скрипт это изменённая версия. В игре он работает, но когда его ставлю после билда игра на телефоне не запускается дальше менюшки. Возвращаю прежнюю версию и снова норм запускается с телефона.
[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 Это связано не только с конкретным объектом. К примеру сегодня сделали чекпоинт (чел просто заходит в триггер коллайдер и на этом месте спавнится после смерти), в игре всё работает норм, а с телефона игру не запускает.
Я уже хз чё делать. Помогите плз.