示例#1
0
    // Update is called once per frame
    void Update()
    {
        if (isAttracting)
        {
            float step = attractSpeed * Time.deltaTime;
            transform.position = Vector3.MoveTowards(transform.position, attractTarget.transform.position, step);
            float distance = Vector3.Distance(transform.position, attractTarget.transform.position);
            if (distance < attractMinDistance)
            {
                ScrapCollector p = attractTarget.GetComponent <ScrapCollector>();
                if (p != null)
                {
                    isAttracting = false;
                    GameManager.Instance.AddScrap(scrapCount);
                    //ScrapCollector.ScrapCount += scrapCount;
                    //p.mesh.SetText($"Scrap: {p.scrapCount}");
                    Destroy(gameObject);
                }
            }
        }

        if (isExplodingFromEnemy)
        {
            float step = (attractSpeed * 2) * Time.deltaTime;
            transform.position = Vector3.MoveTowards(transform.position, movingToLocation, step);
            float distance = Vector3.Distance(transform.position, movingToLocation);
            if (distance < 0.005f)
            {
                isExplodingFromEnemy = false;
            }
        }
    }
示例#2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        ScrapCollector p = collision.gameObject.GetComponent <ScrapCollector>();

        if (p != null)
        {
            Die();
        }
    }