2D-игре Nea на Unity нужна помощь в представлении интерактивных спрайтов и появлении слов при наборе текста [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 2D-игре Nea на Unity нужна помощь в представлении интерактивных спрайтов и появлении слов при наборе текста [закрыто]

Сообщение Anonymous »

Я создаю 2D-игру, вдохновленную «Papers Please» и «Not my сосед». В настоящий момент на моем экране появляется персонаж, предназначенный для предоставления документов, которые я затем могу просмотреть, но я не смог этого сделать. Я перепробовал так много разных вещей, что мой код больше не работает, поэтому мне нужна помощь в написании сценария.
Вот код, который у меня сейчас есть:

Код: Выделить всё

using System.Collections.Generic;
using UnityEngine;

public class DocumentManager : MonoBehaviour
{
[Header("Assign document prefabs (different ID cards, etc.)")]
public GameObject[] documentPrefabs;

[Header("Parent for spawned docs (optional)")]
public Transform container;

[Header("How many to spawn (will clamp to number of prefabs)")]
public int spawnCount = 3;

// Keep references so we don't spawn duplicates
private readonly List spawned = new List();

// Call this when character reaches center
public void ShowDocuments()
{
if (spawned.Count > 0) return; // already spawned
if (documentPrefabs == null || documentPrefabs.Length == 0) return;

Camera cam = Camera.main;
if (cam == null)
{
Debug.LogError("No main camera found.");
return;
}

// center world point — using a z that is the same plane as your docs (0)
Vector3 screenCenter = new Vector3(Screen.width / 2f, Screen.height / 2f, Mathf.Abs(cam.transform.position.z));
Vector3 worldCenter = cam.ScreenToWorldPoint(screenCenter);
worldCenter.z = 0f;

// choose how wide the documents spread (units)
float spread = 1.2f;
int toSpawn = Mathf.Clamp(spawnCount, 1, documentPrefabs.Length);

// spawn evenly around center
int midIndex = toSpawn / 2;
for (int i = 0; i < toSpawn; i++)
{
int prefabIndex = i % documentPrefabs.Length;
Vector3 pos = worldCenter + new Vector3((i - midIndex) * spread, 0f, 0f);
GameObject prefab = documentPrefabs[prefabIndex];
GameObject go = Instantiate(prefab, pos, Quaternion.identity, container);
spawned.Add(go);
}
}

// Removes and destroys spawned documents
public void ClearDocuments()
{
foreach (var g in spawned) if (g != null) Destroy(g);
spawned.Clear();
}

// Convenience: spawn from inspector
#if UNITY_EDITOR
[UnityEditor.MenuItem("Tools/SpawnDocs_Debug")]
private static void DebugSpawn() { }
#endif
}
Это мои игры, такие как экран окна, в которых я хотел бы, чтобы на столе появлялись интерактивные спрайты:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/798 ... e-words-ap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»