Самые годные лайфхаки по unity c#
Сотрудничество/реклама/помощь @Akrus001
Post #630
284
Доброе утро, разработчики!
Всем удачной рабочей недели! ❤️
Всем удачной рабочей недели! ❤️
- 🔥 9
- ❤ 5
- 🎄 1
AK @akrusunity
Showing posts older than #631 · Back to latest

Canvas установи Render Mode в Screen Space - Overlay.Scale With Screen Size.Expand. Это ключевая настройка!
Дата праздника объясняется расчетом: 2 (двоичная система исчисления) в степени 8 (количество битов в байте). То есть 2^8= 256. Поэтому в обычный год день программиста 13 сентября, а в високосный — 12 сентября




void GenerateTerrain() {
MeshFilter mf = GetComponent<MeshFilter>();
Vector3[] vertices = mf.mesh.vertices;
for (int i = 0; i < vertices.Length; i++) {
// Получаем значение шума для точки
float sample = Mathf.PerlinNoise(
vertices[i].x * scale,
vertices[i].z * scale
);
// Применяем к высоте вершины
vertices[i].y = sample * heightMultiplier;
}
mf.mesh.vertices = vertices;
mf.mesh.RecalculateNormals();
}

GetComponent) каждый кадр. Находи их в Start/Awake и сохраняй в переменную.public class Enemy : MonoBehaviour
{
private Health _health; // Кешируем компонент
public static Action<Enemy> OnEnemyDied; // Событие
private void Awake()
{
_health = GetComponent<Health>(); // Нашли один раз
}
private void Die()
{
OnEnemyDied?.Invoke(this); // Оповещаем всех подписчиков
gameObject.SetActive(false);
}
}

// vsego_chasow_potracheno_zdec = 469

Audio Source.Audio Reverb Zone на локацию (например, тоннель или пещера), чтобы звук реалистично отражался от стен.public class Footsteps : MonoBehaviour
{
public AudioSource footstepSound;
void Update()
{
if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.D))
{
if (!footstepSound.isPlaying)
{
footstepSound.Play();
}
}
else
{
footstepSound.Stop();
}
}
}
Попробуйте их поставить на этом посте.
И напишите свое мнение в комментариях!

Speed типа Float).Animator.SetFloat("Speed", 5.5f); // Плавно включит анимацию бега// Прервать любую анимацию и включить смерть
void Die()
{
animator.SetTrigger("Die");
}
Продолжаю разработку игры PixelMine!
Pixel Mine это 2д ММОРПГ с милой пиксельной графикой.
Планируются различные квесты, свободное исследование мира, крафт и получение вещей, ивенты, торговля между игроками и многое другое...
--- --- --- --- --- --- ---
За эту неделю:
• Улучшен чат
• Добавлена новая механика - клады
• Добавлены новые предметы, а так же квесты
• Происходит доработка игры под веб
--- --- --- --- --- --- ---
ТГ канал: ТЫК!
Впереди ещё много интересного, подписывайтесь чтобы поучаствовать в бета тесте, и не пропускать новые обновления!


Debug.Log(nameof(Player)); // "Player"
[ContextMenu("Reset Settings")]
private void ResetSettings() {
// Применяется без запуска игры
}if (TryGetComponent<Rigidbody>(out var rb)) {
rb.AddForce(Vector3.up * 10);
}[System.Flags]
public enum WeaponType {
None = 0,
Sword = 1,
Bow = 2,
Magic = 4
}
// Пример использования:
var myWeapon = WeaponType.Sword | WeaponType.Magic;
if ((myWeapon & WeaponType.Magic) != 0) {
Debug.Log("Magic enabled");
}
💡 Удобно для фильтров, состояний, прав. Избегайте HasFlag — он медленнее.
5️⃣ OnValidate() — авто-валидация в редакторе
void OnValidate() {
damage = Mathf.Max(0, damage);
}