实例化一次

时间:2015-03-09 23:13:35

标签: c# animation unity3d instance

我知道这是一个常见问题但是,我发誓我做了我必须做的事情所以我转向你们,告诉我我的工作有什么问题。

我必须在对象被另一个对象抛出之后在对象上面生成一个"指示器,所以我有一个代码告诉系统在速度之后将该对象实例化为另一个上面的对象作为指示。主要数量的大小变为0并且保证仅在我放置bool以确保我的条件时才实例化,现在实例化的对象在我的项目加载并且处于非常错误的位置时被实例化(因为第一个我的对象的状态仍然是)甚至获得我的位置并确保实例化过程仅在我的最后位置 - 我的实际位置不等于0时才开始,问题仍然存在。我知道它不够明确,所以问我,我会回答,这是我的代码:

public bool isCreated = false;
    public Vector3 lastPosition;
    void Update()
    {

        if (!isCreated)
        {
                if ((gameObject.GetComponent<Item>().name =="blue" ||
                 gameObject.GetComponent<Item>().name =="green")&&
                GameObject.Find("blue").GetComponent<Rigidbody2D>().velocity.magnitude == 0 &&
                (gameObject.transform.position - lastPosition != null))
            {
                Instantiate (indice, new Vector3 (gameObject.transform.localPosition.x ,
                                                  gameObject.transform.localPosition.y + 2,
                                                  gameObject.transform.localPosition.z),
                                 Quaternion.identity);
                isCreated=true;
            }

            //  step3 = true;   
        } 
     ![enter image description here][1]}
        void start()


        {
            lastPosition = gameObject.transform.position;  
        }

1 个答案:

答案 0 :(得分:1)

更新条件:

(gameObject.transform.position - lastPosition != null)

要:

(gameObject.transform.position - lastPosition != default(Vector3))

或者可能:

(lastPosition != null)

我不确定您尝试检查的内容与您发布的代码有什么关系。