Мне нужен вектор, чтобы быть в определенном месте

#c# #unity3d

Вопрос:

В этой игре unity я пишу мод для людей, и я заставляю человека взорваться, как только он будет убит, но по умолчанию взрыв происходит в том же месте на карте,

 ModAPI.OnDeath  = (sender, life) =gt; {  ExplosionCreator.Explode(new ExplosionCreator.ExplosionParameters  {  Position = new Vector3(5, 5, 5),  CreateParticlesAndSound = true,  LargeExplosionParticles = false,  DismemberChance = 0.1f,  FragmentForce = 8,  FragmentationRayCount = 32,  Range = 10  });   

Как бы я сделал так, чтобы место взрыва всегда находилось там, где умер человек?

Комментарии:

1. Не устанавливайте позицию на 5,5,5?

2. Это было 0, 0, 0, но это не имело значения, это просто меняет заданное местоположение взрыва, но я бы хотел, чтобы оно было там, где находится объект в этот момент времени.

3. Является ли отправитель человеком? Если это так, возможно, у него есть свойство position, которое вы можете установить в качестве позиции в объекте параметров взрыва

4. используйте выражение lamda с делегатом. Вы это понимаете ?

5. Так. Вы должны сказать ему, в какой позиции находилась сущность. Не просто дайте ему фиксированную точку

Ответ №1:

Я понятия не имею, как работает ваша структура моддинга, но мне кажется, что отправитель-это Сущность, которая умерла

 ModAPI.OnDeath  = (sender, life) =gt; { ExplosionCreator.Explode(new ExplosionCreator.ExplosionParameters  {  //Assuming you can use default Unity syntax  Position = sender.gameObject.transform.position,  CreateParticlesAndSound = true,  LargeExplosionParticles = false,  DismemberChance = 0.1f,  FragmentForce = 8,  FragmentationRayCount = 32,  Range = 10  });   

Как я уже сказал, я не знаю, какую игру или фреймворк вы используете, но, по крайней мере, эта концепция должна дать вам желаемый результат

Комментарии:

1. Спасибо, это сработало идеально, за исключением того, что отправителя пришлось изменить на жизнь. Очень признателен 🙂

Ответ №2:

Вы должны получить положение человека на карте и задать его в параметре положение. Вы не можете установить его на 5, 5, 5, потому что он занимает позиции относительно карты, а не объекта.