示例#1
0
 // Start is called before the first frame update
 void Start()
 {
     targetObject    = GameObject.Find("seed");
     targetTag       = "seed";
     rb              = GetComponent <Rigidbody2D>();
     spiderStateEnum = SpiderStateEnum.wait;
     originPosition  = transform.position;
 }
示例#2
0
 protected void OnTriggerEnter2D(Collider2D collision)
 {
     if (spiderStateEnum == SpiderStateEnum.rushToSeed && collision.tag == targetTag)
     {
         ColliderObject colliderObject = collision.GetComponent <ColliderObject>();
         colliderObject.RemoveCollider();
         colliderObject.rb.transform.SetParent(transform, true);
         spiderStateEnum = SpiderStateEnum.moveBack;
     }
 }
示例#3
0
    // Update is called once per frame
    void Update()
    {
        switch (spiderStateEnum)
        {
        case SpiderStateEnum.wait:
            if (targetObject.transform.position.y < transform.position.y &&
                targetObject.transform.position.y > transform.position.y - detectHeightRange &&
                targetObject.transform.position.x > transform.position.x - detectWidthRange &&
                targetObject.transform.position.x < transform.position.x + detectWidthRange &&
                !web.caughtSeed)
            {
                spiderStateEnum = SpiderStateEnum.rushToSeed;
                targetY         = targetObject.transform.position.y - 1;
            }
            break;

        case SpiderStateEnum.rushToSeed:
            rb.MovePosition(transform.position + -Vector3.up * moveDownSpeed * Time.deltaTime);
            if (transform.position.y < targetY)
            {
                spiderStateEnum = SpiderStateEnum.moveBack;
            }
            break;

        case SpiderStateEnum.moveBack:
            rb.MovePosition(transform.position + Vector3.up * moveUpSpeed * Time.deltaTime);
            if (transform.position.y >= originPosition.y)
            {
                ColliderObject colliderObject = targetObject.GetComponent <ColliderObject>();
                colliderObject.RecoverCollider();
                colliderObject.rb.transform.SetParent(null, true);
                spiderStateEnum = SpiderStateEnum.end;
            }
            break;
        }
    }