void Start()
    {
        if (GameManager.instance == null)
        {
            return;
        }
        checkTagsHashed = MultiTags.GetHashedTagsArray(checkTags.ToArray());
        if (includeHero)
        {
            TriggerIfTouching.Add(GameManager.instance.Player.gameObject);
        }


        if (gameObject.isStatic)
        {
            return;
        }
        if (useMeshEffects && meshFx == null)
        {
            meshFx = this.GetComponent <MeshFilter>();
        }

        if (meshFx != null)
        {
            tris  = meshFx.mesh.triangles;
            verts = GameMath.CopyVertorArray(meshFx.mesh.vertices);
            uvs   = meshFx.mesh.uv;
            if (useMeshEffects)
            {
                vertsScaled = GameMath.CopyVertorArray(meshFx.mesh.vertices);
                for (int i = 0; i < vertsScaled.Length; i++)
                {
                    vertsScaled[i].x *= scaleFactor.x;
                    vertsScaled[i].y *= scaleFactor.y;
                    vertsScaled[i].z *= scaleFactor.z;
                    //offset:
                    vertsScaled[i].x += offsetFactor.x;
                    vertsScaled[i].y += offsetFactor.y;
                    vertsScaled[i].z += offsetFactor.z;
                }
            }
        }
        if (exitOnStart)
        {
            SuccessOnExit();
        }
    }