Всем доброго дня. Есть игровой прототип, который копирует стиль игры CubeSurfer. Логика такая, - ты управляешь кубом, подбираешь как змейка фрукты определенные объекты, за счет чего количество кубов под ногами растет. На данный момент я пытаюсь сделать так, чтобы игрок, при столкновении с коллайдером объекта как раз таки создавал этот куб под "ногами". И вся проблема в том, что таких "собираемых" предмета в игре пока что три. Игрок может взять только и только один. На все остальные он не реагирует. То есть что ты возьмешь первый, второй или третий, код сработает, но дальше он его просто пропускает. С RigidBody пытался импровизировать, не получилось. Игрок просто улетает в стратосферу при соприкосновении с любым объектом, или создает куб в кубе, чего быть не должно. Помогите советом, как решить эту отнюдь не простую (или же простую) задачу. Вот полный код, наложенный на три игровых объекта:
spoiler
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerCollider : MonoBehaviour
{
[SerializeField] GameObject destroyIt;
[SerializeField] GameObject objToClone;
[SerializeField] Transform rootObjInScene;
Transform curParent;
Vector3 posOffset, posPlayer;
float distance = 1f;
private void OnTriggerStay(Collider player)
{
PlayerJumping();
CreateAnother();
Destroy(destroyIt);
}
public void PlayerJumping()
{
posPlayer = Vector3.up * distance;
Vector3 playerPos = rootObjInScene.position + posPlayer;
rootObjInScene.transform.position = playerPos;
}
public void Awake()
{
curParent = rootObjInScene;
posOffset = Vector3.down * distance;
}
public void CreateAnother()
{
Vector3 newPos = curParent.position + posOffset;
GameObject newObj = Instantiate(objToClone, newPos, Quaternion.identity, curParent);
curParent = newObj.transform;
}
}