2014-02-13 6 views
1

Итак, я делаю игру на основе головоломки, в которой игрок должен использовать батуты, которые обнаруживают, когда игрок прыгает на нее сверху и отскакивает от них до х высоты.Как я могу заставить скрипт батут работать?

Однако в настоящее время в данный момент мой код не работает, и о том, что ошибка

«Невозможно изменить возвращаемое значение„UnityEngine.Rigidbody.velocity“, потому что она не является переменной.»

Если вы знаете, что вы знаете, что можно сделать, чтобы исправить этот код и позволить ему работать в соответствии с его потребностями.

using UnityEngine; 
using System.Collections; 

public class small_trampoline_bounce : MonoBehaviour { 

bool willBounce = false; 
float bounceHeight = 10; 
public Transform Player; 

// Use this for initialization 
void Start() 
{ 


} 

// Update is called once per frame 
void Update() 
{ 

    if (willBounce) 
    { 
     Player.rigidbody.velocity.y = 0; 
     Player.rigidbody.AddForce (0, bounceHeight, 0, ForceMode.Impulse); 
     willBounce = false; 
    } 
} 

void OnCollisionEnter (Collision other) 
{ 

    if (other.gameObject.name == "Player") 
    { 
     willBounce = true; 
    } 

} 

} 

ответ

1

Чтобы устранить конкретную ошибку, которую вы получаете - поскольку скорость - это вектор, вы не можете изменить возвращаемый вектор и ожидать, что сохраненный вектор изменится. Если вы действительно хотите установить скорость напрямую, вам необходимо установить весь вектор, а не только часть:

Player.rigidbody.velocity = new Vector3(0, 0, 0); 

Если вы хотите сохранить предыдущую х и скорость г, вы можете сделать это:

vector3 velocity = Player.rigidbody.velocity; 
Player.rigidbody.velocity = new Vector3(velocity.x, 0, velocity.z); 
+0

Хорошо, мне удалось получить это подпрыгивание, но по какой-то причине персонаж продолжает становиться все выше и выше, как будто нет гравитации, когда у меня есть жесткость, установленная на игрока с гравитацией. –

+1

Лучше всего отметить этот * вопрос как ответ, так как ваша первоначальная проблема решена, а затем задать новый вопрос, включая размещение соответствующего кода тяжести. –

Смежные вопросы