Моя игра работает! Как объекты! Но когда я делаю префабы, ни один из прилагаемых сценариев не работает! Единство
У меня есть враг, который ссылается на сценарий героя!
герой, который ссылается на вражеский сценарий!
башни, которые наносят урон врагу!
(Все как объекты игра работает)
когда я превращаю врага в префаб, а героя и порожденных врагов все упомянутые скрипты цели ломаются, я заново связываю их все в префабах и обновляю
но тогда ничего не получается! враг не получает урона, игнорирует героя!
Что я делаю не так :(
Что я уже пробовал:
Я пытался в течение нескольких дней и искал ответы в интернете!
Вот вам вражеский код
using System.Collections; using System.Collections.Generic; using UnityEngine; using Spine.Unity; using Spine; using UnityEngine.UI; public class Enemy : MonoBehaviour { private bool Electrickcuted; private bool WaterBombed; private float electrickcuted = 2f; private float HitByWater = 2f; public EnemyMove moveScript; public Police PoliceScript; public SkeletonAnimation SkelAnim; public float EnemyStartHealth =100; public Image EnemyHealthBar; public float Enemyhealth; public GameObject HealthContainer; [SpineAnimation] public string walk; [SpineAnimation] public string electrick; [SpineAnimation] public string attack; [SpineAnimation] public string stand; [SpineAnimation] public string die; [SpineAnimation] public string water; void Awake(){ SkelAnim = GetComponent<SkeletonAnimation>(); SkelAnim.state.SetAnimation(0,walk,true); } void Start() { Enemyhealth = EnemyStartHealth; SkelAnim.state.SetAnimation(0,walk,true); System.Random randomNumberGenerator = new System.Random(); int randomSkinNumber = randomNumberGenerator.Next(0, 60); string skinName = "football_" + randomSkinNumber; SkelAnim.skeleton.SetSkin(skinName ); } public void TakeDamgeEnemy (float amount) { Enemyhealth -= amount; EnemyHealthBar.fillAmount = Enemyhealth/EnemyStartHealth; if (Enemyhealth <=0) { Destroy(GameObject.Find("TakeDamageEnemy")); Destroy(GameObject.Find("HealthContainerEnemy")); Destroy(GameObject.Find("enemyweapon")); Destroy(GameObject.Find("EnemyFoot")); moveScript.WalkSpeed = 0f; WaterBombed = false; Electrickcuted = false; SkelAnim.state.SetAnimation(0,die,false); } } private void Update() { if(Electrickcuted) { ElectrickAttack(); } if(WaterBombed) { WaterAttack(); } } void OnTriggerEnter2D (Collider2D other) { if (other.gameObject.CompareTag("policeFootCol")) { SkelAnim.state.SetAnimation(0,attack,true); moveScript.WalkSpeed = 0f; TakeDamgeEnemy (0f); } if (other.gameObject.CompareTag("PoliceWeapon")) { TakeDamgeEnemy (10f); } if (PoliceScript.policehealth <=0) { PoliceScript.policehealth = 0; SkelAnim.state.SetAnimation(0,walk,true); moveScript.WalkSpeed = 1f; } if (other.gameObject.CompareTag("bullet")) { Electrickcuted = true; SkelAnim.state.SetAnimation(0,electrick,true); moveScript.WalkSpeed = 0f; TakeDamgeEnemy (15f); } if (other.gameObject.CompareTag("WaterBomb")) { WaterBombed = true; SkelAnim.state.SetAnimation(0,water,false); moveScript.WalkSpeed = 0f; TakeDamgeEnemy (20f); } } private void ElectrickAttack() { if(electrickcuted < 0f) { Electrickcuted = false; SkelAnim.state.SetAnimation(0,walk,true); moveScript.WalkSpeed = 1f; electrickcuted = 2f; }else{ electrickcuted -= Time.deltaTime; } } private void WaterAttack() { if(HitByWater< 0f) { WaterBombed = false; SkelAnim.state.SetAnimation(0,walk,true); moveScript.WalkSpeed = 1f; HitByWater = 2f; }else{ HitByWater -= Time.deltaTime; } } }
CHill60
Даже близко не достаточно информации, чтобы действительно помочь. Кроме того, вам действительно следует обратиться за помощью в сообщество Unity - СООБЩЕСТВО - ЕДИНСТВО[^]
Member 14135033
хорошо я тоже отправлю туда сообщение
Dave Kreskowiak
Ошибаешься? Возможно, все, а может, и ничего. Мы не можем сказать, потому что мы не видим ни одного из вашего кода вообще.
Member 14135033
добавлен вражеский скрипт, все работает как объект
Dave Kreskowiak
Вам уже говорили об этом, но ваш код все еще настолько плохо отформатирован, что его невозможно прочитать.
Начните с очистки размещения всех фигурных скобок и правильного отступа. Уже одно это значительно облегчает отладку кода.
Member 14135033
Извините, Дэйв!, я пытался исправить это крошечное окошко для редактирования.
Dave Kreskowiak
Вам не нужно будет делать это в "крошечном окне" здесь, если код правильно отформатирован в вашем проекте.