Пик геймплея... но если серьезно что бы я поменял бы: добавил бы какую нибудь цель игроку (ходилки бродилки это конечно хорошо, но тут типо скучно и делать нечего) отключил бы коллизию некоторым объектам по типу травы (мешает сильно гулять по этой локации, отключай компоненты типа Collider, можно еще в MeshRenderer отключить мелким объектам тени чтоб лишний раз комп не грузить) Так же игрока сильно дергает при игре, тут наверно виноват кривой контроллер игрока или настройки физики, хотя я вижу что скрипты игрока не твои. Про музыку или звуковое наполнение я щас ничего не скажу, наушников на данный момент нету.
Как первое творчество на Unity - нормально. Но если оценивать объективно как человек который шарит за Unity и как обычный игрок - максимум 3/10, у игрока нету цели, локация маленькая и изучать ее не интерестно. Если у тебя вновь появится желание сделать что то на Unity обращайся, помогу чем смогу! Еще я дополнительно добавлю код для управления вкладками главного меню, ну как маленький презент, а то не сделать главное меню в Unity игре это плохо. Вот код: using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MainMenuController : MonoBehaviour
{
[System.Serializable]
public class Page
{
public GameObject PageObject;
public List<Button> ButtonsForThisPage;
[HideInInspector] public CanvasGroup PageCanvasGroup;
[HideInInspector] public Animator PageAnimator;
}
public int StartCurrentPageID = 0;
public List<Page> MenuNavigation = new List<Page>();
Comments
Log in with itch.io to leave a comment.
Пик геймплея... но если серьезно что бы я поменял бы:
добавил бы какую нибудь цель игроку (ходилки бродилки это конечно хорошо, но тут типо скучно и делать нечего)
отключил бы коллизию некоторым объектам по типу травы (мешает сильно гулять по этой локации, отключай компоненты типа Collider, можно еще в MeshRenderer отключить мелким объектам тени чтоб лишний раз комп не грузить)
Так же игрока сильно дергает при игре, тут наверно виноват кривой контроллер игрока или настройки физики, хотя я вижу что скрипты игрока не твои.
Про музыку или звуковое наполнение я щас ничего не скажу, наушников на данный момент нету.
Как первое творчество на Unity - нормально. Но если оценивать объективно как человек который шарит за Unity и как обычный игрок - максимум 3/10, у игрока нету цели, локация маленькая и изучать ее не интерестно. Если у тебя вновь появится желание сделать что то на Unity обращайся, помогу чем смогу!
Еще я дополнительно добавлю код для управления вкладками главного меню, ну как маленький презент, а то не сделать главное меню в Unity игре это плохо.
Вот код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class MainMenuController : MonoBehaviour
{
[System.Serializable]
public class Page
{
public GameObject PageObject;
public List<Button> ButtonsForThisPage;
[HideInInspector] public CanvasGroup PageCanvasGroup;
[HideInInspector] public Animator PageAnimator;
}
public int StartCurrentPageID = 0;
public List<Page> MenuNavigation = new List<Page>();
public bool StartScreenFadeOnStart = true;
public bool HideMenuWhileInactive = true;
public CanvasGroup MainCanvasGroup;
public float maxInactiveTime = 8f;
private float inactiveTimeCounter;
private Page currentPage;
private Coroutine throttleCoroutine;
private void Awake() => Initialize();
private void Initialize()
{
if (MenuNavigation == null || MenuNavigation.Count == 0 || StartCurrentPageID >= MenuNavigation.Count)
{
Debug.LogError("[MainMenuController] Список страниц пуст или StartCurrentPageID настроен неверно!");
return;
}
currentPage = MenuNavigation[StartCurrentPageID];
for (int i = 0; i < MenuNavigation.Count; i++)
{
var page = MenuNavigation[i];
if (page.PageObject == null) continue;
page.PageCanvasGroup = page.PageObject.GetComponent<CanvasGroup>();
page.PageAnimator = page.PageObject.GetComponent<Animator>();
if (!page.PageObject.activeSelf)
page.PageObject.SetActive(true);
var targetPage = page;
foreach (Button btn in page.ButtonsForThisPage)
{
if (btn != null)
{
btn.onClick.AddListener(() => SwitchPage(targetPage));
}
}
if (page.PageObject != currentPage.PageObject)
{
PageAnimation(page, false);
}
else
{
PageAnimation(page, true);
}
}
}
private void Update()
{
if (!HideMenuWhileInactive) return;
if (Input.anyKey || Input.GetAxis("Mouse X") != 0 || Input.GetAxis("Mouse Y") != 0)
{
inactiveTimeCounter = 0f;
}
else
{
inactiveTimeCounter += Time.deltaTime;
}
if (inactiveTimeCounter >= maxInactiveTime || !Application.isFocused)
{
MainCanvasGroup.alpha = Mathf.Lerp(MainCanvasGroup.alpha, 0f, Time.deltaTime * 10f);
MainCanvasGroup.blocksRaycasts = false;
}
else
{
MainCanvasGroup.alpha = Mathf.Lerp(MainCanvasGroup.alpha, 1f, Time.deltaTime * 10f);
MainCanvasGroup.blocksRaycasts = true;
}
}
private void SwitchPage(Page newPage)
{
if (throttleCoroutine != null || newPage == currentPage) return;
PageAnimation(currentPage, false);
PageAnimation(newPage, true);
throttleCoroutine = StartCoroutine(ThrottleTransition(currentPage, newPage));
currentPage = newPage;
}
private void PageAnimation(Page page, bool enteringAnimation)
{
if (page.PageAnimator != null)
{
page.PageAnimator.SetTrigger(enteringAnimation ? "In" : "Out");
page.PageAnimator.ResetTrigger(!enteringAnimation ? "In" : "Out");
}
if (page.PageCanvasGroup != null)
{
page.PageCanvasGroup.blocksRaycasts = enteringAnimation;
page.PageCanvasGroup.alpha = enteringAnimation ? 1f : 0f;
}
}
private IEnumerator ThrottleTransition(Page page1, Page page2)
{
float page1Length = GetAnimationClipLength(page1);
float page2Length = GetAnimationClipLength(page2);
float waitTime = Mathf.Max(page1Length, page2Length, 0.1f);
yield return new WaitForSeconds(waitTime);
throttleCoroutine = null;
}
private float GetAnimationClipLength(Page page)
{
if (page.PageAnimator == null) return 0f;
var clipInfo = page.PageAnimator.GetCurrentAnimatorClipInfo(0);
if (clipInfo != null && clipInfo.Length > 0)
{
return clipInfo.clip.length;
}
return 0f;
}
public void QuitGame()
{
Invoke(nameof(CloseGame), 0.35f);
}
private void CloseGame()
{
Debug.Log("Game closed");
Application.Quit();
}
}
если что Chat GPT в помощь чтоб разобратся в моей писанине
Чувак, как ты эот откопал??? Короче W Завозик, если захочу чет сделать с игрой напишу в дс. Связь брат🤙