[英]Unity 2D Collisions and movement with Lerp
因此,我的播放器帶有Rigidbody2d和具有連續碰撞檢測功能和動態身體類型的盒子對撞機2D。 玩家必須跳動的盒子是動態的,直到剛體被破壞以停止擺動時它們掉落為止,盒子上還有對撞機2d,但玩家仍然可以在其中移動。 播放器必須移動,因為它只能移動一定距離。 我很確定這是問題所在,但是,我不知道如何解決。 我有多個光線投射,除了玩家對角地落在盒子上之外,它們的工作效果都很好。 任何幫助將不勝感激。替代文字
謝謝
void update(){
if (Input.GetAxis("Horizontal") > 0 && moveRight == true && moveRightTimer <= 0)
{
moveRightTimer = 0.15f;
moveX += moveDistance;
if(gameObject.transform.localScale.x < 0)
{
flipPlayer();
}
}
}
void FixedUpdate()
{
MovePlayer();
}
//Moves the player
void MovePlayer()
{
Vector2 PlayerPos = gameObject.transform.position;
PlayerPos.x = moveX;
GetComponent<Rigidbody2D>().MovePosition(PlayerPos + (Vector2)transform.position * Time.deltaTime);
}
設置播放器的位置時,請使用Rigidbody2D.MovePosition()
或Rigidbody2D.position
設置變換的position
,而不是直接使用變換的position
屬性。 如果您要使用Rigidbody2D.MovePosition()
來計算剛體上的插值設置。
例:
public Rigidbody2D rigid;
public bool UseMovePosition;
void Awake()
{
rigid = GetComponent<Rigidbody2D>();
}
void FixedUpdate()
{
if (UseMovePosition)
rigid.MovePosition(transform.position + transform.forward * Time.deltaTime);
else
rigid.position = transform.position + transform.forward * Time.deltaTime;
}
這些將設置位置並堅持可能發生的任何碰撞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.