Самые годные лайфхаки по unity c#
Сотрудничество/реклама/помощь @Akrus001
Post #867
538
- ❤ 3
- 🔥 1
AK @akrusunity
Showing posts older than #868 · Back to latest

// Генерация случайного тайла в коде:
public Tile[] groundTiles; // Перетащи тайлы в инспектор
void GeneratePlatform()
{
Tilemap tilemap = GetComponent<Tilemap>();
Vector3Int position = new Vector3Int(Random.Range(-5, 5), 0, 0);
// Выбираем случайный тайл
Tile randomTile = groundTiles[Random.Range(0, groundTiles.Length)];
tilemap.SetTile(position, randomTile);
}
void DestroyTile(Vector2 worldPos)
{
Tilemap tilemap = GetComponent<Tilemap>();
Vector3Int cellPos = tilemap.WorldToCell(worldPos);
tilemap.SetTile(cellPos, null); // Удаляем тайл
SpawnExplosionEffect(worldPos);
}
if (isReady) в Update() используй корутину с WaitForSeconds или InvokeRepeating. Для физики — FixedUpdate. Для событий — подписки (event/delegate).void Update() на IEnumerator MyTimer() везде, где это возможно.enabled = false) коллайдеры у далёких или неактивных объектов. Для статичной декорации используй один Mesh Collider вместо сотни примитивных.FindObjectOfType<GameManager>() или GetComponent<>() в Update — это вызовы каждый кадр.GetComponent<Renderer>().material.color в цикле — сохрани Renderer _myRenderer один раз.[SerializeField] private int _health;
[Range(0f, 10f)] public float speed;
[Header("Player Settings")]
public int playerScore;[Tooltip("Сила прыжка в ньютонах")]
public float jumpForce;[HideInInspector] public bool isGrounded;


Transform.Rotate по заданному алгоритму — колесо сделает N полных оборотов + смещение до выигрышного сектора.public class ControlledWheel : MonoBehaviour
{
public int totalSectors = 8;
public float spinDuration = 5f;
public int winSectorIndex = 0; // Индекс выигрышного сектора (считай с 0)
public void Spin()
{
float fullCircles = 3; // Количество полных оборотов перед остановкой
float sectorAngle = 360f / totalSectors;
float targetAngle = 360f * fullCircles + (sectorAngle * winSectorIndex);
StartCoroutine(SpinRoutine(targetAngle));
}
IEnumerator SpinRoutine(float targetAngle)
{
float elapsed = 0;
float startAngle = transform.eulerAngles.z;
while (elapsed < spinDuration)
{
float t = elapsed / spinDuration;
t = t * t * (3f - 2f * t); // SmoothStep для плавного замедления
float angle = Mathf.Lerp(startAngle, startAngle + targetAngle, t);
transform.rotation = Quaternion.Euler(0, 0, angle);
elapsed += Time.deltaTime;
yield return null;
}
// Точная остановка на выигрышном секторе
transform.rotation = Quaternion.Euler(0, 0, startAngle + targetAngle);
Debug.Log($"Выпал сектор: {winSectorIndex + 1}");
}
}
winSectorIndex номер выигрышного сектора (от 0).Spin() по нажатию кнопки.
Сделал для ГГ квартиру 😁
Игроку — отдых от локации с проверками.
ГГ — свой safe space.
Это уже вторая локация проекта Don't Stay Late. Пока что все накидано довольно широкими мазками, но, самое главное — начало положено
Заинтересовал проект?
Приглашаю подписаться на канал, где выкладываю девлоги по нему. Буду рад каждому вступившему

Гриб
+ желаю всем хорошей выходных!!!

Мой любимый проект из всех, которые я видел.
2д выживач в апокалипсисе. Очень имбовая графика и палитра цветов


Прикольная 2д стрелялка. Идеальный проект для новичков на текущем этапе.