Top.Mail.Ru
Ответы

После спавна префаба не работает его код

Я делаю игру в юнити на подобии Tower Bloxx и у меня возникла проблема, после спавна префаба не работает его код.
Сначала объект ходит из стороны в сторону если нажать на него то он упадёт и если он соприкасается с колайдером(одним из этажей) то спавниться такой же объект и когда он спавниться он просто висит если нажать на него то он упадёт и всё ничего не появляется.
код AFall отвечает за то что объект ходит из строны в сторону и если мы на него нажмём то gravityScale будет равен 10 и активируется FreezePositionX и объект пойдёт вниз
Spawn отвечает за спавн объекта

Ещё бы я хотел добавить что бы после каждого нового поставленного этажа камера и спавн префаба поднимались вверх

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
 using UnityEngine; 
public class AFall : MonoBehaviour 
{ 
    private float dirX; 
    private float moveSpeed; 
    public static Rigidbody2D rb; 
    private bool facingRight = false; 
    private Vector3 localScale; 
    public Behaviour _entity; 
 
    private void Start() 
    { 
        localScale = transform.localScale; 
        rb = GetComponent<Rigidbody2D>(); 
        dirX = -1f; 
        moveSpeed = 15f; 
    } 
 
    private void OnTriggerEnter2D(Collider2D collision) 
    { 
        if (collision.GetComponent<Wall>()) 
        { 
            dirX *= -1f; 
        } 
    } 
    private void FixedUpdate() 
    { 
       rb.velocity = new Vector2(dirX * moveSpeed, rb.velocity.y); 
    } 
 
    private void LateUpdate() 
    { 
            CheckWhereToFace(); 
    } 
 
    void CheckWhereToFace() 
    { 
 
        if (dirX > 0) 
            facingRight = true; 
        else if (dirX < 0) 
            facingRight = false; 
 
        if (((facingRight) && (localScale.x < 0)) || ((!facingRight) && (localScale.x > 0))) 
            localScale.x *= -1; 
 
        transform.localScale = localScale; 
    } 
 
    private void OnMouseDown() 
    { 
        //_entity.enabled = false; 
        //a = false; 
        rb.gravityScale = 10f; 
        rb.constraints = RigidbodyConstraints2D.FreezePositionX | RigidbodyConstraints2D.FreezePositionX; 
 
    } 
} 



1234567891011121314151617
 using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
 
public class Spawn : MonoBehaviour 
{ 
    public GameObject GameObject; 
    public GameObject spawnPoint; 
    public void OnCollisionEnter2D(Collision2D collision) 
    { 
        if (collision.gameObject.tag == "HouseStart") 
        { 
            AFall.rb.gravityScale = 0f; 
            Instantiate(GameObject, spawnPoint.transform.position, Quaternion.identity); 
        } 
    } 
} 
По дате
По рейтингу
Аватар пользователя
Знаток

Я подозреваю, что у объектов которые спаунятся нет тега HouseStart, вот и не появляется ничего

Аватар пользователя
Ученик

тег и вправду не стоял но не помогло

Аватар пользователя
Ученик

ничего не происходит на все теги уже менял он просто висит



Видео по теме