Префаб создается не в нужной позиции.
Добавлено: 05 янв 2019, 10:59
Здравствуйте, я только изучаю Unity и столкнулся с проблемой. Дело вот в чем, персонаж двигается при помощи аниматора, а вращается при помощи мыши. Влево и вправо персонаж вращается целиком, а вверх и вниз только верхняя часть тела. Создал оружие и снаряд. Снаряд это отдельный объект, с довольно непростым скриптом, который позволяет ему лететь по кривой. Проблема не в этом, проблема в том что по нажатии на лкм снаряд должен создаваться в определенной точке, но он создается выше чем эта позиция. Если у аниматора убрать "Apply root motion", то снаряды летят из нужной точки, но персонаж не двигается. Если у аниматора поставить "Animate physics", то снаряды тоже создаются где нужно, но теперь нельзя поворачиваться влево и вправо. Вот так вот. (скрипт создания простейший, прилагаю).
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StrikeScr : MonoBehaviour
{
public GameObject bullet;
public float delayStr;
public Transform bulStart;
private bool getToStrike = true;
void Start()
{
getToStrike = true;
}
IEnumerator strike()
{
Instantiate(bullet, bulStart.position, transform.rotation);
yield return new WaitForSeconds(delayStr);
getToStrike = true;
}
void Update()
{
if (Input.GetButton("Fire1") == true)
{
if (getToStrike == true)
{
getToStrike = false;
StartCoroutine(strike());
}
}
}
}
using System.Collections.Generic;
using UnityEngine;
public class StrikeScr : MonoBehaviour
{
public GameObject bullet;
public float delayStr;
public Transform bulStart;
private bool getToStrike = true;
void Start()
{
getToStrike = true;
}
IEnumerator strike()
{
Instantiate(bullet, bulStart.position, transform.rotation);
yield return new WaitForSeconds(delayStr);
getToStrike = true;
}
void Update()
{
if (Input.GetButton("Fire1") == true)
{
if (getToStrike == true)
{
getToStrike = false;
StartCoroutine(strike());
}
}
}
}