首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使OnTriggerStay在每个帧上工作?

如何使OnTriggerStay在每个帧上工作?
EN

Stack Overflow用户
提问于 2022-10-13 23:02:52
回答 1查看 32关注 0票数 1

所以我有个密码:

代码语言:javascript
复制
public class ball_physics : MonoBehaviour
{
    public Rigidbody ball;

    public open2close claw;
    public Vector3 offset;
    Rigidbody rb;

    private float forceMultiplier = 20;
    private bool isShoot;
    Vector3 start_position;

    public path path;
    
    void Start()
    {
        rb = GetComponent<Rigidbody>();
        rb.Sleep();
        start_position = transform.position;
    }

    void Update()
    {
        // *************
    }

    void Shoot(Vector3 Force)
    {
        if (isShoot)
        {
            print("isshot false");
            return;
        }

        rb.AddForce(new Vector3(Force.x, Force.y,Force.z)* forceMultiplier);
        isShoot = true;
        path.Instance.HideLine();
    }

    private void OnTriggerStay(Collider ball)
    {
        if (isShoot)
        {
            return;
        }
        print("ontriggerstay");


        if (claw.isClosed && claw.transform.gameObject.tag == "claw" )
        {
            print("claw");
            //rb.Sleep();

            transform.position = claw.rightClaw.transform.position + offset;

            Vector3 forceInit = (start_position - transform.position);
            path.Instance.UpdateTrajectory(forceInit * forceMultiplier, rb, transform.position);
        }
    }

    private void OnTriggerExit(Collider ball)
    {
        if (claw.isClosed && claw.transform.gameObject.tag == "claw")
        {
            rb.WakeUp();
        }

        if (claw.isClosed == false)
        {
            Shoot(start_position - transform.position);
        }
    }
}

因此,在我的其他代码中,我有一个OnStayTrigger,它基本上是一个爪子,抓住一个球并拉。但这段代码应该显示弹道线和射击。当我第一次开枪的时候。但是当我再试一次的时候,爪子可以抓住球,但它不会显示轨迹线,也不会射门。所以我猜这是需要修正的代码。我怎样才能让OnTriggerStay一直工作。我不想更改任何代码,因为它工作得很完美。我如何才能不断地更新OnTriggerstay以便它能够工作呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-14 00:09:24

乍一看,您似乎从未将isShoot设置为false,因此它再也不会触发,因为在OnTriggerStay中,如果isShoot = true,则返回它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74062671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档