Мои игровые объекты странно движутся.
На враге у меня есть такой сценарий:
public float speed = 1.0f;
private Transform target;
public void Start()
{
var player = GameObject.FindWithTag("Player");
target = player.transform;
}
void Update()
{
// Move our position a step closer to the target.
float step = speed * Time.deltaTime; // calculate distance to move
transform.position = Vector3.MoveTowards(transform.position, target.position, step);
// Check if the position of the cube and sphere are approximately equal.
if (Vector3.Distance(transform.position, target.position) < 0.001f)
{
// Swap the position of the cylinder.
target.position *= -1.0f;
}
}
После того, как я ударил врага снарядом, он начинает двигаться медленнее.Сценарий, стоящий за снарядом, таков:
if (coll.gameObject.tag != "Player")
{
Destroy(gameObject);
if ((coll.collider.GetComponent("Damageable") as Damageable) != null)
{
var d = coll.collider.GetComponent<Damageable>();
d.Damage(1);
}
}
Я добавил этот сценарий в качестве компонента Damageable, однако такое поведение имело место еще до того, как этот сценарий был активен, поэтому я не думаю, что он связан:
public void Damage(int damageAmount)
{
print("Damage : " + Health + ":" + damageAmount);
Health -= damageAmount;
if (Health <= 0)
{
Destroy(gameObject);
}
}
Любые рекомендации о том, что не так?