Unity3D。创建爬梯子的脚本

问题描述 投票:0回答:1

我没有经验,我想了解我的角色使用梯子或爬过小墙的机制。为了移动,我使用的不是运动学的刚体,而是与 AddForce. 我试图创建一个对象来模拟一个梯子来爬上去。为了让我的角色与梯子接触,我在梯子上插入了一个碰撞器触发器,并调用了 OnTriggerStay 的功能。经过努力,我的角色现在用一个bool,当他足够近的时候,他可以上或者下梯子,但是我不明白一些事情。首先,脚本是放在角色上好还是在比例尺上创建一个好?其次是到了顶部后,如何正确插入一个函数,让我的角色完成攀爬,使其到达楼梯所在的物体上方。我是不是要到达顶部,破坏游戏对象,然后在梯子上方的一个点重生呢......这种情况下有什么好办法?

        private Rigidbody rb;
    public bool ladderClimb = false;
    void Start()
        {
         rb = GetComponent<Rigidbody>();
        }

     void Update()
        {
         if(ladderClimb){
    directionRot = new Vector3(0, 0, 0);  //direction of rotation
    movement = new Vector3(0, Input.GetAxisRaw("Vertical"), 0).normalized; //object movement
      rb.useGravity = false;}
       else rb.useGravity = true;
    }

        void OnTriggerStay(Collider collider){
         if(collider.gameObject.tag == "ladder"){
         if(Input.GetKeyUp(KeyCode.E)) ladderClimb = !ladderClimb;}}

    void OnTriggerExit(Collider collider){
       if(collider.gameObject.tag == "ladder") ladderClimb = false;}
unity3d eventtrigger rigid-bodies
1个回答
0
投票

你可以添加一个触发碰撞器的梯子和检查,如果玩家是接触到碰撞器,然后禁用重力,并允许垂直运动。但是,如果物体从梯子上脱离,则重新启用重力并限制垂直运动。

© www.soinside.com 2019 - 2024. All rights reserved.