我一直在谷歌搜索一周,但我仍然没有找到一个东西。我需要的是,在x点击此平台后,Character(Cat)
必须跳到平台上。没有动作,只有自动跳跃。
这是应该做的最后一件事。
答案 0 :(得分:1)
你可以通过向其刚体添加速度来使猫跳跃。 至于点击平台,请向其添加Box Collider 2D。然后将此脚本添加到平台。
//after the using statements
public GameObject cat; //set this in the inspector by dragging the cat into the variable slot
int clickedAmount = 5;//times it takes to click before the cat jumps
float jumpForce = 10.0f
OnMouseDown() {
clickedAmount -= 1
if (clickedAmount == 0) {
cat.GetComponent<Rigidbody2D>().AddForce(new Vector2(0f,jumpForce));
}
}
如果猫似乎没有跳跃,请确保增加jumpForce
变量。
答案 1 :(得分:0)
我注意到你的评论,说你希望它在rpgs中你点击一个位置,然后你的香椿移动到那里。如果这与您想要的类似,那么您可以采用几种不同的方式。你可以做点什么
public GameObject cat;
int clickedAmount = 5;
OnMouseDown() {
clickedAmount -= 1;
if (clickedAmount <= 0){
cat.GetComponent<CatControllerScript>().moveToTarget = transform; //Give the cat script the transform of this platform
}
}
然后在cat脚本中执行类似
的操作public Transform moveToTarget;
public float moveSpeed;
void Update(){
if (moveToTarget != null){
//one way is
transform.position = Vector3.MoveTowards(transform.position, moveToTarget.position, moveSpeed * Time.deltaTime);
//Another way is
transform.position = Vector3.Slerp(transform.position, moveToTarget.position, moveSpeed * Time.deltaTime);
}}
然后可以检查碰撞,如果碰撞变换,则使moveToTarget = null。或者你可以制作一个改变的bool,然后单独传递变换。
希望这有帮助!