В настоящее время я работаю над игрой в стиле Fighting в Unity и Photon.Однако я столкнулся с небольшой проблемой, которую не знаю, как решить.
Игра 1 на 1, поэтому в комнате одновременно не более двух игроков.У меня есть эффект щита с индикатором здоровья и всплывающим уроном.Например, когда игрок поворачивает камеру, текст врага / панель здоровья поворачивается, чтобы посмотреть на камеру.
Проблема с повреждением текста.Это работает до такой степени, что, когда враг поражен, появляется правильное число, и оно направлено в правильном направлении, однако я хотел бы добавить случайную переменную в позицию появления, чтобы она не появлялась в одном и том же месте.Что происходит, так это то, что ось меняется в зависимости от направления, в котором находится объект (смотрит на игрока).Другими словами, если я хочу получить случайную ось x, она изменится на y и z в зависимости от вращения объекта.
Вот несколько картинок, которые помогут описать:
Проблема:
Это код, который я использую, он прикреплен к символу:
void ShowFloatingText(int amt)
{
Transform c = transform.Find("DamageSpawn").transform;
GameObject go = PhotonNetwork.Instantiate("DamageText", transform.position, Quaternion.identity, 0, null);
go.transform.SetParent(this.transform);
go.transform.localPosition = c.localPosition;
go.transform.localPosition += new Vector3(Random.Range(-randomizeInt.x, randomizeInt.x), Random.Range(-randomizeInt.y/2, randomizeInt.y/2), 0);
go.GetComponent<TextMesh>().text = amt.ToString();
}
Он прикреплен кПовреждение объекта и текст поворота:
public void GetCamera()
{
GameObject[] g = GameObject.FindGameObjectsWithTag("Player");
foreach (GameObject gg in g)
{
if (gg.gameObject.layer == LayerMask.NameToLayer("isSelf"))
{
cam = gg.transform.Find("FirstPersonCharacter").GetComponent<Camera>();
}
}
}
private void Start()
{
Destroy(gameObject, 1.5f);
//transform.position += offset;
GetCamera();
}
void Update()
{
if (cam == null)
{
GetCamera();
}
else
{
transform.LookAt(transform.position + cam.transform.rotation * Vector3.forward, cam.transform.rotation * Vector3.up);
}
}
Я был бы признателен и помог бы решить эту проблему.Спасибо