// Update is called once per frame
    void Update()
    {
        Move();

        //Drop collision objects
        if (nextCollider > precision)
        {
            nextCollider = 0;
            TrailCollider thisCollider = Instantiate(trailCollider, this.transform.parent);
            thisCollider.transform.position = this.transform.position + new Vector3(0.0f, 0.0f, 1.0f);;
            thisCollider.damage             = damage;
            thisCollider.life = this.GetComponent <TrailRenderer>().time;
        }
        else
        {
            nextCollider += speed * Time.deltaTime;
        }
    }
Beispiel #2
0
    // Use this for initialization
    void Start()
    {
        lastPos = transform.position;

        //col = GetComponent<CompositeCollider2D>();

        TrailRenderer tr = GetComponent <TrailRenderer>();

        time = tr.time;
        //minSize = tr.widthCurve.keys[0].value;
        minSize = 0.5f;
        maxSize = tr.widthCurve.keys[tr.widthCurve.length - 1].value;

        parentObj = GameObject.Find("Trails");

        if (!parentObj)
        {
            parentObj = new GameObject("Trails");
        }

        childObj = new GameObject("Trail");
        childObj.transform.SetParent(parentObj.transform);

        col           = childObj.AddComponent <CompositeCollider2D>();
        col.isTrigger = true;

        Rigidbody2D rb = childObj.GetComponent <Rigidbody2D>();

        rb.bodyType = RigidbodyType2D.Static;

        childObj.layer = LayerMask.NameToLayer("Hazardous");

        tc                  = childObj.AddComponent <TrailCollider>();
        tc.damage           = damage;
        tc.damageInterval   = damageTick;
        tc.streakMultiplier = dmgStreakMultiplier;

        if (parent == null)
        {
            parent = transform.parent.GetComponent <AttackingCharacter>();
        }
    }