這個代碼適用於電梯型平臺,一旦玩家站在平臺上,它就會通過向其施加力量來「取得」玩家。儘管有部隊應用,但沒有任何運動
事情是,當力量被創造時,剛體(玩家)在電梯移動時不會移動。代碼是用C#編寫的,使用Unity 5.在代碼中,玩家被分配公共'rb',並且包含一個剛體。 動畫是一個簡單的動畫剪輯,可以將電梯向上移動。有任何想法嗎?預先感謝您的時間和答案。
電梯是Kinematic,玩家不是。
using UnityEngine;
using System.Collections;
/*This script activates when the player steps on the elevator, as it takes them up a floor.*/
public class ElevatorMovementScript : MonoBehaviour
{
private bool elevatorUp = false;
public Animation anim;
public int elevatorDelay = 5;
public int force = 800;
public Rigidbody rb;
// Use this for initialization
void Start()
{
anim = GetComponent<Animation>();
}
// Update is called once per frame
void Update()
{
}
/*Checks if the player has stepped onto the elevator. If the player has, it waits five seconds, and then pushes the player up.*/
void OnTriggerStay(Collider other)
{
if (other.gameObject.tag == "Player" && !elevatorUp)
{
Invoke("AnimationPlay",elevatorDelay);
elevatorUp = true;
}
}
/*Plays the animation of the player going up. Used for the 'Invoke' method.*/
void AnimationPlay()
{
rb.AddForce(transform.up * force);
Debug.Log (transform.up * force);
anim.Play ("Up");
}
}
你試過改變'force'的值嗎?在很多情況下,如果剛體不移動,這是由於力量太低的事實造成的。 –
如果它確實是一個移動平臺,那麼您應該使用運動學剛體而不是施加力。它會使平臺像一個平臺一樣行事。 – 31eee384
@VenkatatAxiomStudios - 我將部隊設置爲500人,然後達到500萬人沒有影響。 – user3280790